Intereting Posts
उद्देश्य सी कस्टम क्लास एक्शन और आउटलेट XCode 4.5 में ZXing पुस्तकालय का उपयोग करते समय आर्किटेक्चर armv7 के लिए अनिर्धारित प्रतीकों ट्रांसमिशन का उचित उपयोगफ्रेमवैयकंट्रोलर: toViewController: अवधि: विकल्प: एनिमेशन: पूर्णता: WKWebview में कैश कैसे निकालें? UIScrollView स्मृति उपयोग को कम करने और दुर्घटना से बचने के लिए छवियों के आलसी लोडिंग देखें यूआरएल से एक फ़ाइल (आईओएस / कोको एसडीके) कैसे डाउनलोड करें जहां फाइल का नाम यूआरएल का हिस्सा नहीं है कैसे UIView में एक Bezier वक्र आकर्षित करने के लिए क्लिक करने योग्य प्रथम शब्द के साथ यूआईएलएबल कैसे बनाएं लेआउट मुद्दा, ऑटोलेयआउट सक्षम है लेकिन काम करने में प्रतीत नहीं होता "एप्पल वॉक एप्लिकेशन इंस्टॉल करें कभी भी समाप्त नहीं हुआ" त्रुटि डिवाइस पर घड़ी कीट ऐप को नियोजित करते समय त्रुटि जैसे ही यह प्राप्त होता है, ध्वनि प्राप्त करने के लिए मैं अपनी पुश सूचना कैसे प्राप्त करूं? यूनिवर्सल iOS ऐप में अलग सेटिंग्स? UITViewcell slowdowns स्क्रॉलिंग तालिका में UIImage SWRevealViewController – राइटViewController यूआईएलोकल नोटिफिकेशन बढ़ाएं

कोर डेटा रीसेट

मैं CoreData में अपने डेटा को रीसेट करने के साथ काम कर रहा हूं, CoreData में अपना डेटा रीसेट करने के लिए मेरा कोड नीचे है

- (void) resetApplicationModel { __managedObjectContext = nil; __managedObjectModel = nil; __persistentStoreCoordinator = nil; _allPageViewController.controller = nil; NSError *error; NSURL *storeURL = [[self applicationDocumentsDirectory] URLByAppendingPathComponent:@"abc.sqlite"]; if ([[self.managedObjectContext persistentStoreCoordinator] removePersistentStore:[[[self.managedObjectContext persistentStoreCoordinator] persistentStores] lastObject] error:&error]) { // remove the file containing the data if([[NSFileManager defaultManager] removeItemAtURL:storeURL error:&error]) { //recreate the store like in the appDelegate method if([self.persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:nil error:&error] == nil) { NSLog( @"could not create new persistent store at %@ - %@", [storeURL absoluteString], [error localizedDescription]); } } else { NSLog( @"could not remove the store URL at %@ - %@", [storeURL absoluteString], [error localizedDescription]); } } else { NSLog( @"could not remove persistent store - %@", [error localizedDescription]); } } 

यह कोड ठीक से काम करता है, तालिका में मेरे सभी डेटा हटा दिए जाते हैं। अब जब मैं दोबारा जोड़ने की कोशिश करता हूं, तो मुझे यह त्रुटि मिलती है

 CoreData: error: Serious application error. An exception was caught from the delegate of NSFetchedResultsController during a call to -controllerDidChangeContent:. attempt to insert row 3 into section 0, but there are only 0 rows in section 0 after the update with userInfo (null) 

मैंने इस समस्या को डिबग करने की कोशिश की, और मुझे पता चला कि मेरा डेटाबेस रिक्त है लेकिन मुझे समझ में नहीं आता कि क्यों अगर मैं बिना रीसेट ऐप चलाता हूं, तो Evrything ठीक काम करती है

तो कृपया मेरी मदद करें

यहां एफआरसी प्रतिनिधियों के बारे में मेरा कोड है

 - (void)controllerWillChangeContent:(NSFetchedResultsController *)controller { [m_tableView beginUpdates]; } - (void)controller:(NSFetchedResultsController *)controller didChangeSection:(id <NSFetchedResultsSectionInfo>)sectionInfo atIndex:(NSUInteger)sectionIndex forChangeType:(NSFetchedResultsChangeType)type { if (!m_userDrivenModelChange) { switch(type) { case NSFetchedResultsChangeInsert: [m_tableView insertSections:[NSIndexSet indexSetWithIndex:sectionIndex] withRowAnimation:UITableViewRowAnimationFade]; break; case NSFetchedResultsChangeDelete: [m_tableView deleteSections:[NSIndexSet indexSetWithIndex:sectionIndex] withRowAnimation:UITableViewRowAnimationFade]; break; } } } - (void)controller:(NSFetchedResultsController *)controller didChangeObject:(id)anObject atIndexPath:(NSIndexPath *)indexPath forChangeType:(NSFetchedResultsChangeType)type newIndexPath:(NSIndexPath *)newIndexPath { switch(type) { case NSFetchedResultsChangeInsert: [m_tableView insertRowsAtIndexPaths:[NSArray arrayWithObject:newIndexPath] withRowAnimation:UITableViewRowAnimationLeft]; break; case NSFetchedResultsChangeDelete: [m_tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade]; break; case NSFetchedResultsChangeMove: [m_tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade]; [m_tableView insertRowsAtIndexPaths:[NSArray arrayWithObject:newIndexPath]withRowAnimation:UITableViewRowAnimationFade]; break; } } - (void)controllerDidChangeContent:(NSFetchedResultsController *)controller { [m_tableView endUpdates]; } 

ऐप [m_tableView एंडअपडेट्स] लाइन पर क्रैश हो रहा है

सादर रंजीत

Solutions Collecting From Web of "कोर डेटा रीसेट"

मुझे नहीं पता कि यह कारण है, लेकिन आपके द्वारा सेट किए जाने के बाद

 __managedObjectContext = nil; __persistentStoreCoordinator = nil; 

आप कॉल करें

 if ([[self.managedObjectContext persistentStoreCoordinator] removePersistentStore: [[[self.managedObjectContext persistentStoreCoordinator] persistentStores] lastObject] error:&error]) 

इसलिए यदि आपके पास गेटter तरीके हैं (जैसा कि डिफ़ॉल्ट एक्सकोड उन्हें बनाता है) आप उन्हें फिर से इनिशियलाइज़ करते हैं, यदि नहीं, तो आप शून्य ऑब्जेक्ट्स पर तरीकों को कॉल करते हैं।

संपादित करें: समझाने का प्रयास (बेहतर)

आपके द्वारा सेट करने के बाद

 __managedObjectContext = nil; 

आप कॉल करें

 [self.managedObjectContext persistentStoreCoordinator] 

जिसका मतलब है

 [nil persistentStoreCoordinator] 

जब तक आपके पास नहीं है

 - (NSManagedObjectContext *)managedObjectContext 

कक्षा में विधि यदि आपके पास विधि है तो वह उसी (पुराने) डेटा मॉडल के लिए प्रबंधित ऑब्जेक्ट कॉन्टैक्स बनाता है।

इसलिए यदि आप नए समन्वयक बनाना चाहते हैं, नया मॉडल फाइल के साथ संदर्भ …, तो आपको पुरानी फाइल को हटाने के बाद उन्हें शून्य सेट करना होगा।