NSFetchedResultsController没有返回数据

问题描述:

我陷入了一些问题,并在寻找2天后我找到了解决方案,但没有明白为什么它会工作。NSFetchedResultsController没有返回数据

首先,我初始化NSFetchedResultsController使用下面的代码(它看起来像很多自动生成的):

- (NSFetchedResultsController *)fetchedResultsController { 

if (fetchedResultsController != nil) 
    return fetchedResultsController; 

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init]; 
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Profile" 
              inManagedObjectContext:self.managedObjectContext]; 
[fetchRequest setEntity:entity]; 
[fetchRequest setFetchBatchSize:20]; 

NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"lastName" ascending:YES]; 
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil]; 
[fetchRequest setSortDescriptors:sortDescriptors]; 

NSFetchedResultsController *aFetchedResultsController = [[NSFetchedResultsController alloc] 
                 initWithFetchRequest:fetchRequest 
                 managedObjectContext:self.managedObjectContext 
                 sectionNameKeyPath:nil 
                 cacheName:@"Root"]; 
aFetchedResultsController.delegate = self; 
self.fetchedResultsController = aFetchedResultsController; 
NSError *error = nil; 
//[aFetchedResultsController performFetch:&error]; 

[aFetchedResultsController release]; 
[fetchRequest release]; 
[sortDescriptor release]; 
[sortDescriptors release]; 

return fetchedResultsController; 

}

看一看评论串 - 有没有任何的这些字符串,当我要求提供数据时 - 我没有收到任何信息(并且它在那里!)。当我取消注释该行时,它开始工作。似乎很明显,但我之前看到的所有例子都没有。他们工作。怎么会这样?我只想知道我做错了什么。

[aFetchedResultsController performFetch:&error];必须在某个时间点被调用才能获取数据。这些例子可能在访问者以外的某个点上获取了数据(虽然在访问者中很好)。

+0

你是对的!它在viewDidLoad中完成..我怎么会错过它...... :( – 2010-04-26 06:02:39