首先,我对 CoreData 真的很陌生。
现在我创建了一个普通的 CoreData 项目,并将所有代码复制到我想要实现 CoreData 的项目中。
在CoreData-vanilla项目中,第一个viewcontroller(MasterViewController),是处理managedObjectContext的控制器:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// Override point for customization after application launch.
UINavigationController *navigationController = (UINavigationController *)self.window.rootViewController;
BilderViewController *controller = (BilderViewController *)navigationController.topViewController;
controller.managedObjectContext = self.managedObjectContext;
return YES;
}
但我希望我的第二个 ViewController 来处理 CoreData:
正如您在此处看到的,我希望“图片”-Viewcontroller 处理/使用核心数据。每个方法都在那个控制器中,所以它应该可以工作。我已经尝试将方法更改为:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// Override point for customization after application launch.
BilderViewController *controller = [[BilderViewController alloc] init];
controller.managedObjectContext = self.managedObjectContext;
return YES;
}
但是,我收到错误:
由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“+entityForName:nil 不是搜索实体名称“事件”的合法 NSManagedObjectContext 参数
我的 managedObjectContext 方法:
// Returns the managed object context for the application.
// If the context doesn't already exist, it is created and bound to the persistent store coordinator for the application.
- (NSManagedObjectContext *)managedObjectContext
{
if (_managedObjectContext != nil) {
return _managedObjectContext;
}
NSPersistentStoreCoordinator *coordinator = [self persistentStoreCoordinator];
if (coordinator != nil) {
_managedObjectContext = [[NSManagedObjectContext alloc] init];
[_managedObjectContext setPersistentStoreCoordinator:coordinator];
}
return _managedObjectContext;
}
我怎样才能解决这个问题?
顺便说一句:最终,有人也知道,为什么原型单元不在我的表格视图的顶部。谢谢。