0

我在 iOS 上使用 Core Data 并且遇到NSFetchRequest.

如果我创建一个NSFetchRequest这样的:

NSFetchRequest* request = [ NSFetchRequest fetchRequestWithEntityName:@"Recipe"];

然后创建我的食谱实体的实例,它们按预期出现在获取请求的结果中。但是一旦我保存数据库并尝试重新加载它们,我的 fetch 请求就不会返回任何结果。

数据库保存成功,没有错误,使用 SQLite 数据库浏览器我可以看到我的所有实体都已保存在底层 SQLite 数据库中。但是他们不会加载...

有没有一种简单的方法来诊断引擎盖下发生的事情,NSFetchRequest以便我可以找出为什么它不会加载我的实体?

// load recipes unsorted
NSFetchRequest* request = [ NSFetchRequest fetchRequestWithEntityName:@"Recipe"];
request.sortDescriptors = [[NSArray alloc] init];

NSFetchedResultsController* frc = [[NSFetchedResultsController alloc] initWithFetchRequest:request managedObjectContext:self.recipeDatabase.managedObjectContext sectionNameKeyPath:nil cacheName:nil];

// fetch results empty
NSError* error = nil;
[frc performFetch:&error];    
4

1 回答 1

0

对不起....我发现了我的问题。当UIManagedDocument状态为UIDocumentStateClosed. 奇怪的是,在对文档进行操作时,其他一切似乎都可以正常工作managedObjectContext,即使文档已关闭。

于 2012-06-11T14:52:08.117 回答