2012-07-20 2 views
8

Sto trasferendo i dati principali della mia app su Magical Record. Per l'aggiornamento di un UITableView, ho già avuto questo codice:Alternativa per fetchedResultsController code using magicalrecord?

- (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; 
} 

Devo tenere questo codice in luogo, o dovrebbe funzionare in modo diverso usando record di magico?

risposta

14

È possibile utilizzare in questo modo:

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

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

    return _fetchedResultsController; 
} 

si deve sostituire NSManagedObject con la sottoclasse.

È possibile visualizzare altre opzioni here (parte inferiore dell'intestazione).

+1

Non ho ottenuto alcun risultato da questo. C'è un ulteriore passaggio richiesto come performFetch? – Allen