2

もう1人は何時間もいました。私のアプリが私のデータベース内の私のエンティティを「見る」ようにするのに大きな問題があります...

appDelegateでコアデータを設定するためのコードを作成しました。私が最初に起動するビューは、このデータに問題なくアクセス(読み取り/書き込み)できます。次に、別のviewControllerからデータベースにアクセスしようとすると、データベースが存在しないかのようになります。

viewControllerヘッダーファイルにすべての正しい@propertyが設定されています。

@property (strong, nonatomic) NSFetchedResultsController *fetchedResultsController;
@property (strong, nonatomic) NSManagedObjectContext *managedObjectContext;

また、各viewControllerは次のようになります。

    NSFetchedResultsControllerDelegate
  • エンティティにアクセスする.mファイルに関連するヘッダーファイルをインポートしました。

これは私が得るエラーです:

'+entityForName: could not locate an NSManagedObjectModel for entity name MyEntityName'

紛らわしいのは、appDelegateから起動ビューを変更した場合、どのビューコントローラーを選択してもエンティティを問題なく表示できることです。最初のものに「注入」しているように見えますが、それで終わりです。

NSManagedObjectをセットアップ/割り当てて初期化してエンティティを参照する必要があると思いますが、これを行う方法がわかりません。

手がかりはありますか?

ありがとう

4

1 に答える 1

1

だから私はあなたがする必要があるのはこのようにmanagedObjectContextを渡すことだと思います

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender;
{
    if ([[segue identifier] isEqualToString:@"theIdentifier"]) {
        UINavigationController *navigationController = (id)[segue destinationViewController];

        MySecondViewController *topViewController = [navigationController topViewController];
        topViewController.managedObjectContext = self.managedObjectContext;
    }
}
于 2012-04-23T15:26:34.077 に答える