1

別のデバイスのコア データでエントリが変更された場合、NSLog メッセージは、変更が認識されているが、NSPersistentStoreDidImportUbiquitousContentChangesNotification呼び出されていないことを示します。テーブルビューを更新することを知るには、最初のデバイスで保存するまで時間がかかります。

これは私のコードです:

[[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(iCloudUpdates:)
                                                 name:NSPersistentStoreDidImportUbiquitousContentChangesNotification
                                               object:nil];

これが機能しない理由を知っている人はいますか?

4

2 に答える 2

3

最初のオプション: 問題が両方のデバイスの更新の遅延である場合 (これは正常な動作です)、Apple は更新のタイミングを保証しませんが、通常は高速です。

反対側で、iCloudUpdates メソッドが呼び出されないという問題がある場合は、署名が正しいことを確認してください。次のようにする必要があります。

-(void)iCloudUpdates:(NSNotification*)notification {
  // do your stuff here
}

2 番目のオプション: 執筆時点では、iOS 5 は iCloud と CoreData に大きな問題を抱えています。私は最近、iCloud サポートなしでアプリケーションを出荷しました。

何が起こっているのか知りたい場合は、次のように入力して CoreData と iCloud の両方のログオンをオンにします。

-com.apple.CoreData.SQLDebug 1
-com.apple.coredata.ubiquity.logLevel 3

スキームマネージャーの実行->引数タブの下。

「宛先」デバイスに奇妙なエラーが表示される場合は、盗聴のために iCloud が機能していない可能性があります。

于 2012-07-26T15:29:21.297 に答える
1

あなたのコードの問題は、「addObserver」でオブジェクトをnilに設定したことだと思います。オブジェクトは、以下に示すように、persistentStoreCoordinator である必要があります。

__weak NSPersistentStoreCoordinator *psc = self.context.persistentStoreCoordinator;

[[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(iCloudUpdates:)
                                             name:NSPersistentStoreDidImportUbiquitousContentChangesNotification
                                           object:psc];
于 2014-06-23T05:30:16.537 に答える