को ठीक से कॉन्फ़िगर कैसे करें मैं अपने कोड में एक NSFetchedResultsController डाल रहा हूं, इसलिए मुझे अपने तालिका दृश्य डेटा का यह अच्छा स्वचालित अनुभाग मिल गया है।NSFetchedResultsController
तो मैं यह सुनिश्चित करने के लिए एक परीक्षण चला रहा हूं कि सब ठीक से काम करता है। मेरे लगातार स्टोर में मेरे पास एक एकल पुस्तक इकाई है। मैं पहले पुराने तरीके से लाने का प्रयास करूंगा, फिर मैं NSFetchedResultsController का उपयोग करने की कोशिश करूंगा। कोड के 2 ब्लॉक के बीच का अंतर केवल 2 लाइनों है।
कोड बिना NSFetchedResultsController:
NSFetchRequest *request = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:kBookEntityName inManagedObjectContext:self.managedObjectContext];
[request setEntity:entity];
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"title" ascending:NO];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil];
[request setSortDescriptors:sortDescriptors];
[sortDescriptor release];
[sortDescriptors release];
//The following 2 lines will be replaced by the NSFetchedResultsController
NSMutableArray *mutableFetchResults = [[[self.managedObjectContext executeFetchRequest:request error:nil] mutableCopy] autorelease];
Book *result = (Book*)[mutableFetchResults objectAtIndex:0];
NSString* title = [result valueForKey:@"title"];
NSString* priority = [result valueForKeyPath:@"priority.name"];
[request release];
अब मैं NSFetchedResultsController के लिए लाइनों में स्थानापन्न:
NSFetchedResultsController* fetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:request managedObjectContext:self.managedObjectContext sectionNameKeyPath:@"title" cacheName:@"BookList"];
Book *result = (Book*)[fetchedResultsController objectAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0]];
सुंदर कटौती और शुष्क लगता है। पहला कोड ब्लॉक ठीक से एकल बुक इकाई प्राप्त करता है। NSFetchedResultsController के साथ कोड, हालांकि, नहीं है। इसके बजाय यह शून्य लौटाता है।
मेरा प्रश्न है: क्या मैं इस उदाहरण में NSFetchedResultsController को ठीक से कॉन्फ़िगर कर रहा हूं?
(ध्यान दें, NSFetchedResultsController का fetchedObjects संपत्ति भी नहीं के बराबर है)
"शीर्षक" संगठन इसे प्राप्त करने और चलाने के लिए सिर्फ एक परीक्षण है। मैं वास्तव में लेखकों के नाम पर एक महत्वपूर्ण पथ से अनुभाग करना चाहता हूं, लेकिन इसे एक साधारण उदाहरण के साथ काम करना चाहता हूं। –
यह बहुत दुखद है कि मैंने वास्तव में fetch नहीं किया था। मुझे नहीं पता कि मुझे क्यों लगता है कि प्रारंभिकरण पर fetch किया गया था। धन्यवाद –
धन्यवाद, यह मेरी मदद करता है :) – mateusmaso