3

iCloud キー値ストアのコードを書きました

    [[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(keyValueStoreChanged:)
                                                 name:NSUbiquitousKeyValueStoreDidChangeExternallyNotification
                                               object:nil];
    LOG(@"sync");
    [[NSUbiquitousKeyValueStore defaultStore] synchronize];

アプリを削除して再インストールすると、通常はobserverメソッドが呼び出されますが、呼び出されないことがあります。

なんで?ネットワークの問題だけ?

4

1 に答える 1

4

インストール後の最初の起動時に NSUbiquitousKeyValueStoreDidChangeExternallyNotification がトリガーされないという同様の問題がありました。NSUBiquitousKeyValueStore に初期キーを設定すると、これが解決されたようです。

オブザーバーをデフォルト ストアに追加した直後に、次のように呼び出します。

[[NSUbiquitousKeyValueStore defaultStore] setString:@"testValue" forKey:@"testKey"];
[[NSUbiquitousKeyValueStore defaultStore] synchronize];

同期したい実際のデータに異なるキー (つまり、testKeyではない) を使用します。

于 2012-11-20T15:10:13.463 に答える