核心数据 - 输入屏幕不是我的初始屏幕?

时间:2012-05-17 11:38:12

标签: ios core-data save

我正在创建一个包含用户输入表单的应用程序。现在使用storyboard,当我将ViewController设置为其初始View Controller并在APp Delegate中设置rootViewController时,我可以保存数据而不用担心。

当我想将应用程序启动到另一个ViewController并且有一个指向输入表单的按钮链接时,我可以填写表单,但是当我按下保存时,它会告诉我它无法找到有问题的实体。

下面的代码来自appDelegate.m文件,以及它设置为处理数据输入的VC的那一刻。我想设置它,以便当前注释掉的ViewController成为根,然后当我在AddDataVC上保存按钮时它可以找到实体。

我很确定我的CoreData代码很好,因为它能够保存数据,但只有当输入表单不是初始的ViewController时它才会崩溃。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// Override point for customization after application launch.

AddDataVC *addDataVC = (AddDataVC *)self.window.rootViewController;
addDataVC.managedObjectContext = self.managedObjectContext;
//ViewController *controller = (ViewController *)self.window.rootViewController;
//controller.managedObjectContext = self.managedObjectContext;
return YES;
}

提前致谢: - )

- 修改 -

下面我从控制台粘贴了错误:

2012-05-17 23:46:37.288 SW_Vault[26604:15203] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '+entityForName: could not locate an NSManagedObjectModel for entity name 'Product''

- 编辑2 -

好的,我试图解释的是这个。 当我使用像实用程序应用程序这样的模板时,它允许我创建实体并设置textField和Save Button,它可以保存数据。图像不在故事板上。注意如何只有1个VC,它是初始视图:

enter image description here

但是当我有另一个VC作为初始视图控制器时,它会出现无法找到实体的错误。这是我上面描述的错误。

enter image description here

现在条目视图的代码没有改变,但如果你看第一个 - (BOOL)我在这个问题中发帖,我可以选择2个rootViewControllers,我只需要注释一个使用另一个。< / p>

现在在第二张图片中,如果我将该板中的第二个VC作为初始VC,那么我没有问题,只有当我通过Segue到达那里时。

我希望这更有意义: - )

2 个答案:

答案 0 :(得分:0)

错误意味着您可能未加载定义Product的托管对象模型。

为了避免这种情况,您需要在代码中的某个位置(可能是AppDelegate)设置核心数据堆栈。

有关详细信息,建议您阅读this stackoverflow post

答案 1 :(得分:0)

好吧,我有问题的答案: - )

我必须设置一个Segue才能让它发挥作用。我在这里问了这个问题并得到了这个答案: - )

Ray Wenderlich Forums