ドキュメント ベースのコア データ アプリを作成します。
コアデータからプロジェクトをロードする方法があります。アプリでプロジェクトを作成してロードしているので、完全に機能しているようです。これは、情報がコア データ ドキュメントに保存され、取得されていることを意味します。
問題は、アプリを開くたびに新しいドキュメントが作成されることです。これは紛らわしいです。前述のように、アプリが開いている限り、必要なだけデータを保存および取得できます。
以下のコードは、以前は開発中に数週間は機能していましたが、現在は何らかの形で壊れています。アプリを起動するたびに「CREATE DOCUMENT」がログに記録され、明らかにデータが保存されていない空白のドキュメントが表示されます。
- (void)openDatabase {
if (![[NSFileManager defaultManager] fileExistsAtPath:[myManagedDocument.fileURL path]]) {
[myManagedDocument saveToURL:myManagedDocument.fileURL forSaveOperation:UIDocumentSaveForCreating completionHandler:^(BOOL sucess) {
[self loadCurrentProjectFromCoreData];
NSLog(@"CREATE DOCUMENT");
}];
} else if (myManagedDocument.documentState == UIDocumentStateClosed) {
NSLog(@"DOCUMENT EXISTS, LOAD DOCUMENT");
[myManagedDocument openWithCompletionHandler:^(BOOL sucess) {
[self loadCurrentProjectFromCoreData];
}];
} else if (myManagedDocument.documentState == UIDocumentStateNormal) {
[self loadCurrentProjectFromCoreData];
NSLog(@"DOCUMENT LOADED");
}
}