【问题标题】:OS X Core data not initilazing in ViewController but works in AppDelegateOS X Core 数据不在 ViewController 中初始化,但在 AppDelegate 中有效
【发布时间】:2016-12-21 08:13:56
【问题描述】:

我正在尝试将我的核心数据加载到我的 ViewController。在 ViewDidLoad 方法中。

NSLog(@"Stored Tasks.... %@",[TTDatabase getAllTasks]);

但它总是给我+entityForName: nil is not a legal NSManagedObjectContext parameter searching for entity name 'Tasks'

但是当我在 AppDelegate 中调用相同的东西时,它工作正常。

[TTDatabase sharedDatabaseWithManagedObjectContext:self.managedObjectContext];

NSLog(@"Stored Tasks.... %@",[TTDatabase getAllTasks]); // This Works

我发现的另一件事是,当我运行应用程序时,它首先初始化 ViewController,然后它会调用 AppDelegate。

我在这个问题上做错了什么?如何在我的视图控制器中加载数据?

【问题讨论】:

    标签: objective-c macos core-data


    【解决方案1】:

    您应该将核心数据堆栈从应用程序委托中移出并移到“TTDatabase”中。然后,一旦第一个实例被创建,无论它是从哪里创建的,它都会被正确配置,因为它没有依赖关系。

    【讨论】:

      【解决方案2】:

      无论如何,我发现了一个棘手的方法。在 AppDelegate 初始化之后,我会从中调用我的 Viewcontroller 方法。

      [TTDatabase sharedDatabaseWithManagedObjectContext:self.managedObjectContext];
      
          ViewController * vc = [[ViewController alloc]init];
          [vc loadData];
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-05-19
        • 2021-09-25
        • 1970-01-01
        • 2017-02-01
        • 1970-01-01
        • 2020-07-03
        • 1970-01-01
        • 2012-10-21
        相关资源
        最近更新 更多