Я подписываюсь на NSUbiquitousKeyValueStoreDidChangeExternallyNotification
, чтобы отслеживать изменения значения ключа из iCloud. После получения я обрабатываю включенные userinfo
и применяю свою бизнес-логику.
Однако иногда (особенно при первом запуске) я получаю ключи, которые кажутся связанными с системой или, по крайней мере, не являются частью моего приложения.
AppleKeyboards
NSInterfaceStyle
AppleKeyboardsExpanded
AppleICUForce24HourTimeAirPlayShouldShowDebugButtonInPicker
так далее
- Как я могу идентифицировать такие ключи и не пытаться использовать их в коде моего приложения? Должен ли я как-то «помечать» свои данные, чтобы их можно было идентифицировать?
- Несу ли я ответственность за обновление локальных значений этих ключей? iCloud должен отправлять их по какой-то причине, но я не знаю, куда их поместить. Они в моем NSUserDefaults? Или iCloud обрабатывает их отдельно (в этом случае кажется странным, что они включены в информацию о пользователе)?
Вот как я подписываюсь на уведомления:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(iCloudStoreChanged:)
name:NSUbiquitousKeyValueStoreDidChangeExternallyNotification
object:store];
-[NSUbiquitousKeyValueStore setObject:forKey:]
и/или+[NSUbiquitousKeyValueStore defaultStore]
. - person Julien   schedule 22.06.2013