2016-08-15 6 views
0

私のコアデータをViewControllerにロードしようとしています。 ViewDidLoadメソッドの内部。OS XコアデータはViewControllerで初期化されていませんが、AppDelegateで動作します

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を呼び出しますです。

この問題で何が間違っていますか?どのように私のviewcontrollerでデータを読み込むことができますか?

答えて

1

コアデータスタックをアプリケーションデリゲートから「TTDatabase」に移動する必要があります。その後、最初のインスタンスが作成されるとすぐに、そしてそれがどこから作成されても、依存関係がないため、適切に構成されます。

0

とにかく私はそれをやるのが難しい方法を見つけました。 AppDelegateを初期化した後、ViewControllerメソッドを呼び出すことができません。

[TTDatabase sharedDatabaseWithManagedObjectContext:self.managedObjectContext]; 

    ViewController * vc = [[ViewController alloc]init]; 
    [vc loadData]; 
+0

これは画面に表示されない新しいVCインスタンスを作成しています... – Wain

関連する問題