NSFetchedResultsController没有返回数据

时间:2010-04-25 22:19:03

标签: iphone core-data nsfetchedresultscontroller

我陷入了一些问题,经过2天的寻找,我找到了解决方案但却不知道为什么会这样做。

首先,我使用以下代码初始化了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;

}

看看评论字符串 - 没有任何这些字符串,当我要求数据时 - 我没有得到任何字符串(它就在那里!)。当我取消注释该行时,它开始工作。看起来很明显,但我之前看到的所有例子都没有那条线。他们工作。怎么会这样?我只是想知道我做错了什么。

1 个答案:

答案 0 :(得分:3)

必须在某个时刻调用

[aFetchedResultsController performFetch:&error];才能获取数据。这些示例可能在访问器以外的某些位置获取数据(但在访问器中它很好)。