0

iCloud で sqlite コア データ ストアを作成し、1 つのデバイスでシードすると、正常に動作し、約 6,000 のレコードがあります。2 番目のデバイスでストアを作成すると、同期されますが、約 4,000 レコードしかありません (おそらくトランザクション ログから)。NSPersistentStoreDidImportUbiquitousContentChangesNotification に応答する同期コードは...

    NSUndoManager * undoManager = [context undoManager];
    [undoManager disableUndoRegistration];
    [context mergeChangesFromContextDidSaveNotification:info];
    [context processPendingChanges];
    [undoManager enableUndoRegistration];

しかし、デバッグステートメントを挿入すると...

NSSet *updatedObjects = [[info userInfo] objectForKey:NSUpdatedObjectsKey];
NSSet *deletedObjects = [[info userInfo] objectForKey:NSDeletedObjectsKey];
NSSet *insertedObjects = [[info userInfo] objectForKey:NSInsertedObjectsKey];

NSLog(@"found transaction log.  updated %d, deleted %d, inserted %d", updatedObjects.count, deletedObjects.count, insertedObjects.count);

すべてに対して予期しない「0」が表示されますが、データベースには約 4,000 のレコードが含まれているため、何かを同期していることはわかっています。

ここで何が起こっているのかについて誰かアドバイスはありますか?

ありがとうレイ

4

1 に答える 1