के दूसरे डालने पर विफल रहता है मैं एक NSFetchedResultsController का उपयोग कर रहा एक तालिका दृश्य एक अनुभाग है कि में लाए जाने प्रबंधित वस्तुओं को प्रदर्शित करने का प्रबंधन करने के। तालिका खाली हो जाती है और उपयोगकर्ता यूआई का उपयोग करके इसमें नई इकाइयां जोड़ सकता है। जैसा कि यह खड़ा है, पहली इकाई जोड़ते समय प्रोग्राम हमेशा काम करता है, और दूसरा जोड़ते समय हमेशा क्रैश होता है। कभी-कभी दुर्घटना पर कोई त्रुटि नहीं होती है और दूसरी बार अलग-अलग प्रकार की त्रुटियां होती हैं (कुछ नीचे शामिल हैं)। लॉग स्टेटमेंट्स और ट्रेसिंग के माध्यम से मैं देखता हूं कि प्रोग्राम NSFetchResultsController के प्रतिनिधि के नियंत्रक के बाद क्रैश हो जाता है WillChangeContent (जो [self.tableView startUpdates] को कॉल करता है;) विधि निकलती है, लेकिन मेरे कोड में किसी भी अन्य विधि से पहले कहा जाता है। यहां मेरे कोड के कुछ हिस्सों में से कुछ हैं। NSFetchedResultsController का विन्यास:NSFetchedResultsController आधारित तालिका देखें हमेशा इकाई
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
[fetchRequest setEntity:[NSEntityDescription entityForName:@"Beer"
inManagedObjectContext:self.managedObjectContext]];
// Configure request's entity and predicate
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"name" ascending:YES];
NSArray *sortDescriptors = [NSArray arrayWithObjects:sortDescriptor, nil];
[fetchRequest setSortDescriptors:sortDescriptors];
[sortDescriptor release];
[sortDescriptors release];
NSString *expression = [NSString stringWithFormat:@"brewery.name LIKE \"%@\"", self.brewery.name];
NSPredicate *predicate = [NSPredicate predicateWithFormat:expression];
[fetchRequest setPredicate:predicate];
self.resultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest
managedObjectContext:self.managedObjectContext
sectionNameKeyPath:nil
cacheName:nil];
self.resultsController.delegate = self;
[fetchRequest release];
NSError *error = nil;
BOOL success = [resultsController performFetch:&error];
if (!success) {
NSLog(@"Error fetching request %@", [error localizedDescription]);
}
नई इकाई जोड़ना:
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Beer" inManagedObjectContext:self.managedObjectContext];
Beer *beer = [[Beer alloc] initWithEntity:entity insertIntoManagedObjectContext:self.managedObjectContext];
beer.name = beerName;
beer.brewery = self.brewery;
मैं एक अनुभाग के साथ टेबल प्रदर्शित समस्याओं के बारे में डॉक्स में चेतावनी देखा है, और मैं कोई लाभ नहीं हुआ है कि के लिए एप्पल के वैकल्पिक हल का इस्तेमाल किया है। वैसे भी उन विधियों को दुर्घटना से पहले बुलाया नहीं जा रहा है।
त्रुटियों मैं प्राप्त हो गया है में से कुछ:
Serious application error. Exception was caught during Core Data change processing: *** -[NSCFString compareObject:toObject:]: unrecognized selector sent to instance 0x4e808c0 with userInfo (null)
Serious application error. Exception was caught during Core Data change processing: *** -[CALayer compareObject:toObject:]: unrecognized selector sent to instance 0x4e53b80 with userInfo (null)
Serious application error. Exception was caught during Core Data change processing: *** -[UITextTapRecognizer controllerWillChangeContent:]: unrecognized selector sent to instance 0x4ca5d70 with userInfo (null)
Serious application error. Exception was caught during Core Data change processing: *** -[CALayer controllerWillChangeContent:]: unrecognized selector sent to instance 0x4e271a0 with userInfo (null)
Serious application error. Exception was caught during Core Data change processing: *** -[NSCFNumber countByEnumeratingWithState:objects:count:]: unrecognized selector sent to instance 0x4c96ee0 with userInfo (null)
आप देख सकते हैं, त्रुटियों (जब एक प्रस्तुत किया गया था) संगत नहीं हैं, तब भी जब कोड में कोई परिवर्तन नहीं किया गया था।
किसी को भी यह पता लगाने कर सकते हैं मैं गलत क्या कर रहा हूँ?
मेरे पास बिल्कुल वही त्रुटि है। क्या आप मुझे बता सकते हैं कि समस्या को हल करने के लिए आपने क्या किया? धन्यवाद। – zsong