Iphone UIMangedDocument上下文为零
我正在努力学习如何使用核心数据和UIManagedDocuments。首先,我创建/打开文档:Iphone UIMangedDocument上下文为零,iphone,ios,objective-c,Iphone,Ios,Objective C,我正在努力学习如何使用核心数据和UIManagedDocuments。首先,我创建/打开文档: NSURL *url = [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject]; url = [url URLByAppendingPathComponent:@"ProjectSSBDB"]; document = [[UIM
NSURL *url = [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject];
url = [url URLByAppendingPathComponent:@"ProjectSSBDB"];
document = [[UIManagedDocument alloc] initWithFileURL:url];
if ([[NSFileManager defaultManager] fileExistsAtPath:[url path]])
{
[document openWithCompletionHandler: ^(BOOL success)
{
if (success) [ProjectSSViewController documentIsReady];
if (!success) NSLog(@"Couldn't open document at %@", url);
}];
}
else
{
[document saveToURL:url forSaveOperation:UIDocumentSaveForCreating completionHandler:^(BOOL success)
{
NSLog(@"Returned %d", success);
if (success) [ProjectSSViewController documentIsReady];
if (!success) NSLog(@"Couldn't create document at %@", url);
}];
}
然后,一旦成功创建并打开文档,我将执行以下操作:
if (document.documentState == UIDocumentStateNormal)
{
NSManagedObjectContext *context = [document managedObjectContext];
Exercise *exercise = (Exercise *) [NSEntityDescription insertNewObjectForEntityForName:@"Exercise" inManagedObjectContext:context];
}
这里的最后一行似乎给出了错误:“+entityForName:nil不是合法的NSManagedObjectContext参数搜索实体名称”练习
我确实创建了一个具有“练习”实体的数据模型。从我所做的阅读来看,这可能与不同线程与上下文交互的方式有关?但我不确定,任何指导都会很好
+entityForName:nil不是搜索实体名称“练习”的合法NSManagedObjectContext参数
只有3种可能性:
实体名称拼写错误,例如练习而非练习。
具有nil托管对象上下文
没有加载或加载了错误的托管对象模型。
在您的情况下,最有可能的情况是第二种情况可能是您的托管对象上下文为零。您可以向我展示您的managedObjectContext方法吗?您解决了这个问题吗?如果是,则接受答案。managedObjectContext方法正是UIManagedDocument上属性的方法。如果我使用document.managedObjectContext,也会执行同样的操作。@rheotron:您是否尝试过从模拟器中删除应用程序,清理并重新构建?@rheotron:检查您的managedObjectContext是否返回NULL?是的,返回nil。我想他们是一样的。@rheotron:这就是问题本身。