4

CoreDataシューボックスアプリをiCloudと同期したい。Appleが提供するプロジェクトの例は、iCloudを有効にするためにNSPersistentStoreCoordinatorを設定する方法を示しています。コードは大まかに次のようになります。

persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel: [self managedObjectModel]];

NSDictionary* options = [NSDictionary dictionaryWithObjectsAndKeys:@"com.company.app", NSPersistentStoreUbiquitousContentNameKey, cloudURL, NSPersistentStoreUbiquitousContentURLKey,nil];

[psc addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeUrl options:options error:&error]);

問題は、データがすでにiCloudに保存されている場合、このメソッドがpersistentStoreCoordinatorを返すのに永遠にかかることです。同期的に実行すると、空白の画面が数分間表示されます。非同期的に実行すると、Core Dataと対話できないため、アプリが完全に使用できなくなります。

確かに、iCloudなしの場合と同じように永続ストアを追加して、iCloudを非同期で動作させる方法はありますか?

基本的に、私の質問は、最初に同期するのにかかる時間の間にiCloudは何をしているのか、そして最初にpersistentStoreCoordinatorを持って、データをバックグラウンドで同期させることができるかということです。

4

1 に答える 1

2

iCloudを使用してコアデータを同期する場合は、ストアを別のスレッドにロードする必要があります。を見てみましょう:

https://devforums.apple.com/thread/126670

これは、ストアの非同期ロードを示しています。

于 2011-11-23T02:34:05.363 に答える