0

我正在制作一个包含用户输入表单的应用程序。现在使用情节提要,当我将上面有表单的 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--

好的,所以我想解释的是这个。当我使用实用程序应用程序之类的模板时,它允许我创建实体并设置一个文本字段和一个保存按钮,它可以很好地保存数据。图像不在故事板上。注意只有 1 个 VC,它是初始视图:

在此处输入图像描述

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

在此处输入图像描述

现在条目视图的代码没有改变,但是如果你看一下我在这个问题中发布的第一个 -(BOOL),我可以在 2 个 rootViewController 之间进行选择,我只需将一个注释掉就可以使用另一个。

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

我希望这更有意义:-)

4

2 回答 2

0

该错误意味着您可能没有加载定义Product.

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

有关更多信息,我建议阅读此 stackoverflow 帖子

于 2012-05-17T11:56:58.070 回答
0

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

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

Ray Wenderlich 论坛

于 2012-05-18T23:23:04.450 回答