當本地商店更改爲iCloud Store時,我試圖接收消息。iCloud&CoreData:更改爲iCloud Store時的通知(使用現有iCloud數據首次發佈)
這是一個關鍵事件。因此,我的使用案例是一個新設備,從空店開始後接收iCloud Store。我想通知視圖以更新收到的內容。
我初始化我的管理對象上下文是這樣的:
[self.managedObjectContext.persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType
configuration:nil
URL:self.storeURL
options:@{ NSPersistentStoreUbiquitousContentNameKey : @"iCloudStore", [NSNumber numberWithBool:YES]: NSMigratePersistentStoresAutomaticallyOption,
[NSNumber numberWithBool:YES]:NSInferMappingModelAutomaticallyOption}
error:&error];
我的下一步是得到如下通知:
NSNotificationCenter *dc = [NSNotificationCenter defaultCenter];
[dc addObserver:self
selector:@selector(storesWillChange:)
name:NSPersistentStoreCoordinatorStoresWillChangeNotification
object:psc];
[dc addObserver:self
selector:@selector(storesDidChange:)
name:NSPersistentStoreCoordinatorStoresDidChangeNotification
object:psc];
[dc addObserver:self
selector:@selector(persistentStoreDidImportUbiquitousContentChanges:)
name:NSPersistentStoreDidImportUbiquitousContentChangesNotification
object:psc];
我認爲在name:NSPersistentStoreCoordinatorStoresDidChangeNotification
實施更新的用戶界面應該做的事情。但不知何故,這似乎是我想要做的。
編輯: 與相關帖子在接受的答案,我可以解決我的問題
我檢查通知的UserDict在
這樣的:storesDidChange:
NSNumber *storeVal = [note.userInfo objectForKey:NSPersistentStoreUbiquitousTransitionTypeKey];
if (storeVal.integerValue == NSPersistentStoreUbiquitousTransitionTypeInitialImportCompleted) {
//you are now in sync with iCloud
NSLog(@"On iCloud Store now");
[self.delegate storeHasChanged];
}
您的相關帖子確實幫了我很多!我用我的解決方案更新了我的問題 – arnoapp