Я подписываюсь на NSUbiquitousKeyValueStoreDidChangeExternallyNotification
для отслеживания изменений значения ключа из iCloud. Получив, я обрабатываю userinfo
и применяю свою бизнес-логику.Идентификация данных ключа iCloud без приложения
Однако, иногда (особенно при первом запуске) я получаю ключи, которые кажутся системы связаны между собой, или, по крайней мере, не являются частью моего приложения -
AppleKeyboards
NSInterfaceStyle
AppleKeyboardsExpanded
AppleICUForce24HourTimeAirPlayShouldShowDebugButtonInPicker
и т.д.
- Как я могу идентифицировать такие ключи и не пытаться запустить их против моего кода приложения? Должен ли я каким-то образом «помечать» свои собственные данные, чтобы их можно было идентифицировать?
- Я несу ответственность за обновление локальных значений для этих ключей? iCloud должен отправлять их по какой-то причине, но я не знаю, куда их поместить. Являются ли они в моих NSUserDefaults? Или iCloud обрабатывает их отдельно (в этом случае кажется странным, что они включены в информацию пользователя)?
Это, как я подписаться на уведомления:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(iCloudStoreChanged:)
name:NSUbiquitousKeyValueStoreDidChangeExternallyNotification
object:store];
1) что именно - вызов [NSNotification addObserver:], который вы используете? 2) используете ли вы какую-то странную структуру? 3) вы уверены, что не слушаете NSUserDefaultsDidChangeNotification? – Julien
Я добавил свой addObserver: - Я не использую никаких фреймворков и не слушаю NSUserDefaultsDidChangeNotification где-нибудь в моем коде. –
Разве вы не знаете, какие клавиши использует ваше приложение? Почему бы просто не искать известные ключи? –