2

私は単一の永続ストアを持つ既存のデータモデルを持っていましたが、すべてが良好です。

さて、WWDC 2012のビデオ「コアデータでのiCloudの使用」(#227)に続いて、元の「デフォルト」を維持したまま、モデルに「クラウド」と「ローカル」の2つの構成を定義しました。エンティティを「クラウド」と「ローカル」に分割しました。私のコードでは、対応する2つの永続ストアのみを追加します。

  NSDictionary *options = @{NSMigratePersistentStoresAutomaticallyOption: @YES,
                            NSInferMappingModelAutomaticallyOption: @YES};
  if (![__persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType
                                                  configuration:@"Cloud"
                                                            URL:[self cloudPersistentStoreURL]
                                                        options:options
                                                          error:&error]) {
    NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
  }

  if (![__persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType
                                                  configuration:@"Local"
                                                            URL:[self localPersistentStoreURL]
                                                        options:options
                                                          error:&error]) {
    NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
  }

これらは問題なく追加されます。後でアプリを実行して、初期の試用データを通常どおりに保存しようとすると、次の例外がスローされます。

NSUnderlyingException=オブジェクトをストアに割り当てる方法を解決できません。一部のオブジェクトがストアに割り当てられている可能性があります。[[managedObject objectID] persistStore]を使用して、現在何が起こっているかを調べます。[managedObjectContextassignObject:toStore:]を使用して問題を解決します

私はこれの一部をヒットなしでグーグルで検索しましたが、Appleのトラブルシューティングコアデータドキュメントはこれについて説明していないようです。何が原因なのか、どこを見ればいいのかわかりません。何かご意見は?

4

1 に答える 1

2

ある店舗から別の店舗にまたがる関係がないことを確認してください。関連するエンティティは、同じ構成内に配置する必要があります。

たとえば、に格納され、に格納されるBookように構成されたエンティティがあります。両方が関連しています。ここでをに割り当てて保存すると、CoreDataは関係を処理できず、表示されているエラーが発生します。CloudAuthorLocalAuthorBook

于 2013-01-26T10:39:06.937 に答える