核心数据iOS - NSInvalidArgumentException + entityForName:nil

时间:2014-05-03 09:35:39

标签: ios iphone objective-c core-data

我的iPhone项目有点混乱,我不知道如何解决它。当我运行应用程序并点击表视图" Prijmy"然后应用程序将终止:

  

由于未捕获的异常终止应用程序' NSInvalidArgumentException',原因:' + entityForName:nil不是合法的NSManagedObjectContext参数,用于搜索实体名称' Transakcie'& #39;

为了更好地理解和解决问题,我上传了整个project on Dropbox.

非常感谢。 :)

2 个答案:

答案 0 :(得分:1)

问题所在 - 托管对象上下文永远不会在PrijmyViewController上设置。

有两种方法可以解决这个问题。

(1)最简单的方法是将以下内容添加到awakeFromNib

中的PrijmyViewController
AppDelegate *appController = [[UIApplication sharedApplication] delegate];
self.managedObjectContext = appController.managedObjectContext;

这不是最干净的设计,因为故事板中的所有视图控制器都必须进入"应用程序的委托来获取托管对象上下文。您可能需要在最终需要托管对象上下文的所有其他控制器上执行此操作...

(2)或者,您可以对选项卡栏控制器进行子类化,并在嵌入segues上使用其prepareForSegue来向下游注入托管对象上下文。在我看来,从设计的角度来看,这是一个更清洁的解决方案。

答案 1 :(得分:0)

您必须在viewdidload中初始化您的appdelegate coredata实例

- (void)viewDidLoad
{
    appDelegate=[AppDelegate sharedDelegate];
}

我认为它解决了你的问题,它对我有用。