Подтвердить что ты не робот

Могу ли я использовать iCloud для синхронизации файла pls NSUserDefaults

Мне было интересно, можно ли использовать iCloud для синхронизации файла настроек приложений между устройствами. Файл предпочтений, о котором я говорю, это файл com.domain.appname.plist, созданный NSUserDafults для хранения настроек приложения.

Я хотел бы иметь возможность сохранять файл настроек приложения в синхронизации между двумя разными устройствами (например, iPad и iPhone). Является ли это приемлемым использованием синхронизации iCloud? Или мне нужно будет преобразовать файл plist в другой тип документа, сохранить его в облаке и преобразовать его обратно в файл настроек приложения после его извлечения?

спасибо!

4b9b3361

Ответ 2

Подобно MKiCloudSync, у меня также есть библиотека на GitHub, называемая SDCloudDefaults, Вместо автоматической синхронизации используется новый объект, который вы используете вместо NSUserDefaults, который сохраняет как iCloud, так и NSUserDefaults. Это означает, что вы можете решить, какие элементы хранятся локально и которые хранятся в облаке.

(Я нашел MKiCloudSync после того, как я его реализовал. Думаю, он умный, но я не хочу синхронизировать все с iCloud, поэтому мое решение все еще работает лучше для меня.)

Ответ 3

Можно синхронизировать настройки между устройствами, использующими iCloud. Однако я бы рекомендовал не распространять файл plist между устройствами.

NSUbiquitousKeyValueStore должен быть подходящим для того, что вы пытаетесь сделать. Он очень похож на NSUserDefaults, поэтому его легко подбирать.

Чтобы использовать его, просто включите право com.apple.developer.ubiquity-kvstore-identifier в своем файле прав и просто дублируйте предпочтения, которые вы хотите синхронизировать, в вездесущем хранилище значений ключей. После этого в вездесущем kvstore вы сможете увидеть его из приложения на других устройствах. Вы даже можете синхронизировать между различными приложениями, если они используют один и тот же идентификатор.

Вы также должны зарегистрироваться для уведомления NSUbiquitousKeyValueStoreDidChangeExternallyNotification, чтобы следить за новыми изменениями и соответствующим образом обновлять стандартныеUserDefaults на устройстве.