Chr*_*sJP 20 iphone cocoa-touch core-data
这是toggleAddProject方法的代码,Core Data代码与Apple的CoreDataBooks示例中的代码几乎相同,但是当我单击添加按钮时,应用程序崩溃entityForName: could not locate an NSManagedObjectModel for entity name 'Project'就行了newProjectController.project
-(IBAction)toggleAddProject
{
NewProjectViewController *newProjectController = [[[NewProjectViewController alloc] initWithStyle:UITableViewStyleGrouped] autorelease];
// Create a new managed object context for the new project -- set its persistent store coordinator to the same as that from the fetched results controller's context.
NSManagedObjectContext *addingContext = [[NSManagedObjectContext alloc] init];
self.addingManagedObjectContext = addingContext;
[addingManagedObjectContext setPersistentStoreCoordinator:[[fetchedResultsController managedObjectContext] persistentStoreCoordinator]];
newProjectController.project = (Project *)[NSEntityDescription insertNewObjectForEntityForName:@"Project" inManagedObjectContext:addingContext];
[addingContext release];
UINavigationController *addNewNavigationController = [[UINavigationController alloc] initWithRootViewController:newProjectController];
[self.navigationController presentModalViewController:addNewNavigationController animated:YES];
[addNewNavigationController release];
}
Run Code Online (Sandbox Code Playgroud)
一切都已合成,项目实体存在.我无法弄清楚它崩溃的原因.大多数人似乎能够通过在方法本身或viewDidLoad中插入以下代码来修复此错误:
if (managedObjectContext == nil)
{
managedObjectContext = [(CoreDataBooksAppDelegate *)[[UIApplication sharedApplication] delegate] managedObjectContext];
}
Run Code Online (Sandbox Code Playgroud)
修改为我的应用程序委托后,它没有任何区别.谢谢你的帮助.
gho*_*fly 23
当我有几个不同NSManagedObjectContext的时候,我遇到了这个问题.调试它的快速方法是检查不同的连接位,并确保在调用上下文之前列出了我的实体.
NSLog(@"Context: %@",context);
NSLog(@"PS Coord : %@",context.persistentStoreCoordinator);
NSLog(@"MOM : %@", context.persistentStoreCoordinator.managedObjectModel);
NSLog(@"Entities : %@",[[context.persistentStoreCoordinator.managedObjectModel entities] valueForKey:@"name"]);
Run Code Online (Sandbox Code Playgroud)