1

私は何時間もstackoverflowとGooglingを検索してきました。CoreDataとバインディングをいじくり回す簡単なプロジェクトを作成しました。モデルにエンティティが追加され、機能しなくなりました。新しいドキュメントにデータを追加しようとすると、「このNSPersistentStoreCoordinatorには永続ストアがありません。保存操作を実行できません」というメッセージが表示されていました。私は運が悪かったので見つけたすべてのアドバイスに従いました。

最後に、新しいプロジェクト(NSPersistentDocumentベース)を作成し、新しいモデルを最初から作成しました。プロジェクトを初めて実行する前に、モデルが完璧であることを確認しました。

WindowControllerDidLoadNibの場合:プロジェクトは、データを追加するためのメソッドを呼び出します。addDataルーチンの前に、ManagedObjectContextとManagedObjectModelをログに記録します。どちらもゼロではありません。

私はまだこの%$&#@を取得しています!エラー。

誰かがこれについて何か新しいアイデアを持っていますか?

編集:これは、新しい無題のドキュメントが保存されたことがないためでしょうか?もしそうなら、どのようにそれを回避しますか?無題のドキュメントを保存できますか?本当にしたいですか?

しばらく前にファイルのインポートで同様の問題が発生しました。私は完全に制御できるので、ドキュメントに名前を付けて保存し、コンテキストを保存することができました。

4

1 に答える 1

4

上記のコメントで示したように、少なくともMountain Lionでは、コンテキストを保存する前に、少なくとも1回はドキュメントを保存する必要があります。いくつかの実験を行いましたが、変更した少量のデータは、コンテキストを保存せずに自動保存によって保存されました。saveContextメソッドを次のように変更しました。

- (void)saveContext {

    if (![self fileURL]) {
        NSLog(@"Can't save context.  No file name has been set.");
        return;
    } 
    NSError *error = nil;
    if (![self.managedObjectContext save:&error]) {
        [NSApp presentError:error];
        NSLog(@"Error userInfo: %@",[error userInfo]);
        abort();
    }
}
于 2012-08-27T14:10:12.780 に答える