Core data +entityForName:在第二个视图中找不到实体名称“Ditloide”的NSManagedObjectModel
我试图解释我的问题 我有一个第一视图,其中有一些按钮。按下按钮,应用程序将打开一个tableview。我的项目中有这些文件: AppDelegate.h/m viewcontroller.h/m以控制第一个视图 Entity1TableViewController.h/m来控制由该控件打开的tableview 第一视图中的按钮 一个.xcdatamodel 所以,在我进入桌面视图之前,一切都是好的。我把这个Core data +entityForName:在第二个视图中找不到实体名称“Ditloide”的NSManagedObjectModel,core-data,entity,nsmanagedobjectcontext,Core Data,Entity,Nsmanagedobjectcontext,我试图解释我的问题 我有一个第一视图,其中有一些按钮。按下按钮,应用程序将打开一个tableview。我的项目中有这些文件: AppDelegate.h/m viewcontroller.h/m以控制第一个视图 Entity1TableViewController.h/m来控制由该控件打开的tableview 第一视图中的按钮 一个.xcdatamodel 所以,在我进入桌面视图之前,一切都是好的。我把这个 NSManagedObjectContext *context = [self.fet
NSManagedObjectContext *context = [self.fetchedResultsController managedObjectContext];
NSEntityDescription *entity = [[self.fetchedResultsController fetchRequest] entity];
NSManagedObject *newManagedObject = [NSEntityDescription insertNewObjectForEntityForName:@"Ditloide" inManagedObjectContext:context];
当我按下按钮时,我收到错误信息:
+entityForName: could not locate an NSManagedObjectModel for entity name 'Ditloide' in a second view
我在其他帖子中发现了如下内容:
MainViewController *controller = (MainViewController *)self.window.rootViewController;
controller.managedObjectContext = self.managedObjectContext;
放入根控制器。但就我而言,我可以把这个放在哪里?我必须创建一个新的控制器?如果是,我无法插入
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
方法
那么,我该如何解决这个问题呢?我不太确定我是否理解你的问题 错误是由于您没有正确设置主运行中心。有关更多详细信息,请参阅 问题是:您是否正确设置了核心数据堆栈?你能分享一些代码吗 然后,关于您看到的代码,它的目标是在需要的地方注入上下文。例如,假设您有一个名为YourController的控制器,它需要上下文。您可以在控制器中创建如下属性:
//.h
@property (nonatomic, retain) NSManagedObjectContext* context; // or strong if you ARC
//.m
@synthesize context;
然后,从另一个元素,例如app委托,如果您已经在那里设置了核心数据堆栈,那么您可以创建控制器并注入它
YourController* yourCtr = // alloc-init
yourCtr.context = [self managedObjectContext];
最后,如果是,我不能插入-BOOLapplication:UIApplication*应用程序didFinishLaunchingWithOptions:NSDictionary*launchOptions方法是什么意思?您能在创建managedObjectContext的地方添加代码吗?