我在iOS上使用核心数据,在使用NSFetchRequest时遇到了问题。
如果我像这样创建一个NSFetchRequest:
NSFetchRequest* request = [ NSFetchRequest fetchRequestWithEntityName:@"Recipe"];然后创建我的配方实体的实例,它们会按预期出现在fetch请求的结果中。但是,一旦我保存了数据库,并尝试重新加载它们,那么我的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]; 发布于 2012-06-11 22:52:08
对不起……我找到我的问题了。当状态为UIDocumentStateClosed时,我没有打开UIManagedDocument。奇怪的是,在操作文档managedObjectContext时,即使文档是关闭的,其他一切似乎都可以正常工作。
https://stackoverflow.com/questions/10974849
复制相似问题