我在 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];