2012-12-21 14 views
5

मैं निम्नलिखित कोड का उपयोग कर रहा:कोर डेटा हटाएं ऑब्जेक्ट: काम नहीं कर रहा है?

+(void)deleteObject:(NSManagedObjectID*)oId { 
NSError *error; 
DFAppDelegate *temp = [DFAppDelegate new]; 
NSManagedObjectContext *context = [temp managedObjectContext]; 
NSManagedObject *obj = [context existingObjectWithID:oId error:&error]; 
[context deleteObject:obj]; 
} 

लेकिन यह तदनुसार काम करने के लिए प्रतीत नहीं होता। जब मैं आईओएस सिम्युलेटर पर अपना आवेदन पुनरारंभ करता हूं तो मैं सूची में ऑब्जेक्ट को फिर से देख सकता हूं। मैंने ऑब्जेक्ट को दिए गए ऑब्जेक्ट आईडी के साथ मुद्रित करने का प्रयास किया है और यह सही ऑब्जेक्ट लौटा रहा है लेकिन फिर भी ऑब्जेक्ट को हटाया नहीं गया है, जो मेरे कोर डेटा मॉडल को स्थायी रूप से बना देता है। मेरी कोई भी इकाई किसी अन्य इकाई के संबंध में नहीं है।

क्या कोई मुझे बता सकता है कि क्या गलत हो रहा है?

धन्यवाद।

संपादित करें: मैंने त्रुटि के लिए जांच की है, लेकिन यह कोई त्रुटि नहीं दिखाती है।

उत्तर

17

कोई भी बदलाव जो आप NSManagedObjectContext पर करते हैं, तब तक अस्थायी होते हैं जब तक आप इसे सहेज नहीं लेते। अपने विधि के अंत करने के लिए इस जोड़ने का प्रयास करें:

if (![context save:&error]) { 
    NSLog(@"Couldn't save: %@", error); 
} 
+0

धन्यवाद ... कोड अब काम कर रहा है .... –

3

NSManagedObjectContext एक खरोंच-पैड प्रदान करता है: आप जो कुछ भी आप अपने वस्तुओं के साथ की तरह कर सकते हैं, लेकिन अंत में यह बचाने की जरूरत है। आप डिफ़ॉल्ट कोर डाटा परियोजना का उपयोग कर रहे हैं, तो आपके AppDelegate में इस विधि को देखो:

- (void)saveContext 
{ 
    NSError *error = nil; 
    NSManagedObjectContext *managedObjectContext = self.managedObjectContext; 
    if (managedObjectContext != nil) { 
     if ([managedObjectContext hasChanges] && ![managedObjectContext save:&error]) { 
      // Replace this implementation with code to handle the error appropriately. 
      // abort() causes the application to generate a crash log and terminate. You should not use this function in a shipping application, although it may be useful during development. 
      NSLog(@"Unresolved error %@, %@", error, [error userInfo]); 
      abort(); 
     } 
    } 
} 
+0

धन्यवाद ... मैं अवधारणा मिला है। –

संबंधित मुद्दे