2016-04-08 18 views
1

コアデータとiCloud同期で有線で動作することがあります。私は私のアプリへのiCloud書類とCloudkit機能を追加し、私は、これらの3つの通知を購読:コアデータ+ iCloud同期NSPersistentStoreDidImportユビキタスコンテンツ変更通知

NSPersistentStoreCoordinatorStoresWillChangeNotification 
NSPersistentStoreCoordinatorStoresDidChangeNotification 
NSPersistentStoreDidImportUbiquitousContentChangesNotification 

私は、これらの通知受信アプリ走った最初の時間:

Using local storage: 1 
store will Change notification 
store did Change notification 
Using local storage: 0 

をしかし、NSPersistentStoreDidImportUbiquitousContentChangesNotificationは」didnのコアデータがiCloudアカウントのユビキタスコンテナからデータをダウンロードしなかったため、解雇されることはありません。

しかし、飛行機モードをオンにしてもアプリケーションを終了して再起動すると、すべてのデータがすぐに読み込まれました。最初の起動時にデータがダウンロードされてSQLiteストアに保存されたように見えましたが、通知が発行されず、UIがリフレッシュされるようになっていました。

あなたはそのような経験をしたことがあり、あなたはその状況で何をしましたか?

答えて

0

初回セットアップと「通常の」同期操作には違いがあります。

NSPersistentStoreDidImportUbiquitousContentChangesNotificationは初回セットアップ時には掲載されません。後で変更が発生したときに限ります。これにより、アプリにインポートするように通知されます(mergeChangesFromContextDidSaveNotification(_:)を呼び出して)。

AppleのiCloud Programming Guide for CoreDataは、どの段階で何が起こるかを理解するのに非常に役立ちます。

特に、iCloud Performs a One-Time SetupおよびCore Data Posts Content Changes from iCloudの章を参照してください。

関連する問題