質問

だからこれは吸う。 nsdictionaryからの情報にコアデータデータベースを入力しようとしています。

以下のコードを使用してUIMANAGEDドキュメントを開きます。完了ハンドラーブロックは、APIから辞書を再帰的に穴を開けるメソッドを呼び出し、それぞれのデータベースのエンティティを追加します。

データベースファイルは正常に作成されており、辞書は正常に入力されており、エンティティオブジェクトも入力されていますが、何らかの理由で情報がデータベースに書き込まれていませんが、たまに機能していますが、何かがあったかどうかはわかりません。違う。

コンソールでメッセージが表示されます。

「NSFILECOORDINATOR:驚くべきサーバーエラーが合図されました。詳細:接続無効」

メソッドがOpenWithPleditionHandlerまたはsavetourl:forsaveoperation:withcompleditionhandler runをopenwithwithpleditionhandlerまたはsavetourlを実行します。

スタンフォードiPhoneコースからカットされて貼り付けられているため、以下のコードが機能しない理由がわかりません。

シミュレータからアプリを削除しようとしましたが、違いはありません。これは私の頭を何時間も破壊してきました、どんな助けも感謝しています。

+ (void)populateDatabase
{
// Get URL -> "<Documents Directory>/<TrailerDB>" 
NSURL *url = [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject];

url = [url URLByAppendingPathComponent:@"TrailerDB"];

UIManagedDocument *doc = [[UIManagedDocument alloc] initWithFileURL:url];

// If document exists on disk...

if (![[NSFileManager defaultManager] fileExistsAtPath:[url path]]) 
{
    [doc saveToURL:url 
  forSaveOperation:UIDocumentSaveForCreating
 completionHandler:^(BOOL success)
     { 

         if (success) [self fillDatabase:doc.managedObjectContext];

         if (!success) NSLog(@"couldn’t open document at %@", url);
     }];

} else {   

    if (doc.documentState == UIDocumentStateClosed) {
        // exists on disk, but we need to open it
        [doc openWithCompletionHandler:^(BOOL success) 
         {

             if (success) [self fillDatabase:doc.managedObjectContext];

             if (!success) NSLog(@"couldn’t open document at %@", url);
         }];
    } else if (doc.documentState == UIDocumentStateNormal) 
    {
        [self fillDatabase:doc.managedObjectContext];
    }
}
}
役に立ちましたか?

解決

filldatabaseの後、この方法を呼び出してみてください。

[doc saveToURL:doc.fileURL forSaveOperation:UIDocumentSaveForOverwriting completionHandler:^(BOOL success)
 {
    if (success == NO)
    {
       NSLog(@"Save operation failed!");
    }
 }];
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top