2012-06-14 6 views
26

में ऑब्जेक्ट हटाएं मैं इस ऑब्जेक्ट से पहले जो ऑब्जेक्ट जोड़ा था, उसे कैसे हटा सकता हूं। शुरुआत में, यह एक पसंदीदा अनुभाग है, मैं एक ग्रे स्टार जोड़ता हूं जो एक वस्तु को लाने से आती है। फिर यह पीला हो जाता है और पिछली विधि स्टार पीले = deletes होना चाहिए।कोर डेटा

लेकिन मुझे नहीं पता कि यह कैसे करें।

अग्रिम धन्यवाद

-(IBAction)inFavoris:(id)sender { 



AppDelegate *appDelegate = [[UIApplication sharedApplication] delegate]; 

NSManagedObjectContext *context = [appDelegate managedObjectContext]; 
NSManagedObject *favorisObj = [NSEntityDescription 
          insertNewObjectForEntityForName:@"Favoris" 
          inManagedObjectContext:context]; 


[favorisObj setValue:idTaxi forKey:@"idTaxi"]; 
[favorisObj setValue:nomTaxi forKey:@"nomTaxi"]; 
[favorisObj setValue:taxiCB forKey:@"cb"]; 
[favorisObj setValue:taxiAvion forKey:@"avion"]; 
[favorisObj setValue:taxiColis forKey:@"colis"]; 
[favorisObj setValue:taxiHandicape forKey:@"handicape"]; 
[favorisObj setValue:taxiHoraires forKey:@"horaire"]; 
[favorisObj setValue:lugagge forKey:@"lugagge"]; 
[favorisObj setValue:luxury forKey:@"luxury"]; 
[favorisObj setValue:languesParlees forKey:@"langues"]; 
[favorisObj setValue:taxiNote forKey:@"note"]; 
[favorisObj setValue:taxiPassengers forKey:@"passenger"]; 
[favorisObj setValue:taxiVote forKey:@"etoiles"]; 
[favorisObj setValue:taxiTel forKey:@"tel"]; 


[self.view addSubview:favorisB]; 

} 

अद्यतन

मैं इस विधि बनाया .. यह काम किया :)

-(IBAction)outFavoris:(id)sender { 


AppDelegate *appDelegate = [[UIApplication sharedApplication] delegate]; 
NSString *testEntityId = idTaxi; 
NSManagedObjectContext *moc2 = [appDelegate managedObjectContext]; 

NSFetchRequest *fetch = [[NSFetchRequest alloc] init]; 
fetch.entity = [NSEntityDescription entityForName:@"Favoris" inManagedObjectContext:moc2]; 
fetch.predicate = [NSPredicate predicateWithFormat:@"idTaxi == %@", testEntityId]; 
NSArray *array = [moc2 executeFetchRequest:fetch error:nil]; 




for (NSManagedObject *managedObject in array) { 
    [moc2 deleteObject:managedObject]; 
} 


[self.view addSubview:favorisO]; 

} 
+0

आप पिछले पर managedObject को बचाने के लिए CoreData –

उत्तर

60

इसकी काफी सरल :)

[context deleteObject:favorisObj]; 
हो जाता है

और खराब वस्तु सब खत्म हो गई है।

अद्यतन

तुम बस कुछ इस तरह से यह रिवर्स चाहते हैं, तो आप एक बटन की जरूरत वस्तु को हटाने के लिए।

-(IBAction)removeFavoris:(id)sender { 

    AppDelegate *appDelegate = [[UIApplication sharedApplication] delegate]; 

    NSManagedObjectContext *context = [appDelegate managedObjectContext]; 

    [context deleteObject:favorisObj]; 
} 
+0

ठीक है में परिवर्तन करने की आवश्यकता है, लेकिन मैं एक तरीका है जिसके ऊपर से विपरीत है कैसे कर सकते हैं? – Tidane

+0

मुझे उपरोक्त की तरह favorisObj घोषित करना है ?? यह अभी भी कुछ भी नहीं हटाता है :( – Tidane

+0

ऊपर आप favorisObj बना रहे हैं और फिर इसमें सामान जोड़ रहे हैं। आपको एक ही ऑब्जेक्ट लेने की आवश्यकता है और इसे '[context deleteObject: arg]' –

24

NSManagedObject को हटाने के बाद संदर्भ को सहेजना न भूलें। तो यहां सामान्य कोड है;

NSManagedObjectContext * context = [self managedObjectContext]; 
[context deleteObject:objectToDelete]; 

NSError * error = nil; 
if (![context save:&error]) 
{ 
    NSLog(@"Error ! %@", error); 
} 

आपके मामले में इसमें लूप के बाद स्निपेट होना चाहिए।

for (NSManagedObject *managedObject in array) { 
    [moc2 deleteObject:managedObject]; 
} 
NSError * error = nil; 
if (![context save:&error]) 
{ 
    NSLog(@"Error ! %@", error); 
}