2012-07-20 20 views
8

मैं अपने ऐप के कोर डेटा को जादुई रिकॉर्ड पर ले जा रहा हूं। एक UITableView को अद्यतन करने के लिए, मैं पहले इस कोड था:magicalrecord का उपयोग कर fetchedResultsController कोड के लिए वैकल्पिक?

- (NSFetchedResultsController *)fetchedResultsController { 

    if (_fetchedResultsController != nil) { 
     return _fetchedResultsController; 
    } 

    NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init]; 
    NSEntityDescription *entity = [NSEntityDescription entityForName:@"Entry" inManagedObjectContext:[CoreDataStore mainStore].context]; 
    [fetchRequest setEntity:entity]; 

    [fetchRequest setFetchBatchSize:20]; 

    NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"creationDate" ascending:NO]; 
    NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil]; 

    [fetchRequest setSortDescriptors:sortDescriptors]; 

    // Use the sectionIdentifier property to group into sections. 
    NSFetchedResultsController *aFetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:[CoreDataStore mainStore].context sectionNameKeyPath:@"sectionIdentifier" cacheName:@"Root"]; 
    aFetchedResultsController.delegate = self; 
    self.fetchedResultsController = aFetchedResultsController; 

    self.fetchedResultsController.delegate = self; 

    return _fetchedResultsController; 
} 

मैं जगह में इस कोड को रखना चाहिए, या यह जादुई रिकॉर्ड का उपयोग कर अलग ढंग से काम करना चाहिए?

उत्तर

14

आप इस तरह उपयोग कर सकते हैं:

- (NSFetchedResultsController *)fetchedResultsController { 
    if (_fetchedResultsController != nil) { 
     return _fetchedResultsController; 
    } 

    _fetchedResultsController = [NSManagedObject fetchAllGroupedBy:nil withPredicate:nil sortedBy:@"date" ascending:NO delegate:self]; 

    return _fetchedResultsController; 
} 

आप अपने उपवर्ग के साथ NSManagedObject को बदलने के लिए।

आप अन्य विकल्प here (शीर्षलेख के नीचे) देख सकते हैं।

+1

मुझे इससे कोई परिणाम नहीं मिल रहा है। क्या प्रदर्शन करने के लिए कोई अतिरिक्त कदम आवश्यक है? – Allen