0

NSUbiquitousKeyValueStoreDidChangeExternallyNotificationiCloud からのキー値の変更を監視するために を購読しています。受け取ったら、userinfo含まれているものを処理し、ビジネス ロジックを適用します。

ただし、(特に最初の起動時に) システムに関連しているように見えるキー、または少なくともアプリケーションの一部ではないキーを受け取ることがあります -

AppleKeyboards
NSInterfaceStyle
AppleKeyboardsExpanded
AppleICUForce24HourTimeAirPlayShouldShowDebugButtonInPicker

  1. そのようなキーを特定し、アプリケーション コードに対してそれらを実行しないようにするにはどうすればよいですか? 自分のデータを識別できるように、どうにかして「フラグを立てる」必要がありますか?
  2. これらのキーのローカル値を更新する責任はありますか? 何らかの理由で iCloud がそれらを送信しているに違いありませんが、どこに保存すればよいかわかりません。それらは私の NSUserDefaults にありますか? それともiCloudはそれらを別々に処理していますか(その場合、それらがユーザー情報に含まれているのは奇妙に思えます)?

これは私が通知を購読する方法です:

[[NSNotificationCenter defaultCenter] addObserver:self                                                   selector:@selector(iCloudStoreChanged:)
                                             name:NSUbiquitousKeyValueStoreDidChangeExternallyNotification
                                           object:store];
4

1 に答える 1

0

ジュリアンはここにそれを持っていました。フレームワークを使用していませんでしたが、以前は MKiCloudSync を使用して NSUserDefaults を同期していたことを少し忘れていました。これらのキーはシステムによって NSUserDefaults に追加され、iCloud に伝達されたとしか思えません。

于 2013-06-22T14:21:06.923 に答える