NSUbiquitousKeyValueStoreDidChangeExternallyNotification
iCloud からのキー値の変更を監視するために を購読しています。受け取ったら、userinfo
含まれているものを処理し、ビジネス ロジックを適用します。
ただし、(特に最初の起動時に) システムに関連しているように見えるキー、または少なくともアプリケーションの一部ではないキーを受け取ることがあります -
AppleKeyboards
NSInterfaceStyle
AppleKeyboardsExpanded
AppleICUForce24HourTimeAirPlayShouldShowDebugButtonInPicker
等
- そのようなキーを特定し、アプリケーション コードに対してそれらを実行しないようにするにはどうすればよいですか? 自分のデータを識別できるように、どうにかして「フラグを立てる」必要がありますか?
- これらのキーのローカル値を更新する責任はありますか? 何らかの理由で iCloud がそれらを送信しているに違いありませんが、どこに保存すればよいかわかりません。それらは私の NSUserDefaults にありますか? それともiCloudはそれらを別々に処理していますか(その場合、それらがユーザー情報に含まれているのは奇妙に思えます)?
これは私が通知を購読する方法です:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(iCloudStoreChanged:)
name:NSUbiquitousKeyValueStoreDidChangeExternallyNotification
object:store];