Могу ли я использовать iCloud для синхронизации plist-файла NSUserDefaults - PullRequest
13 голосов
/ 18 октября 2011

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

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

спасибо!

Ответы [ 3 ]

16 голосов
/ 25 января 2012

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

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

13 голосов
/ 20 декабря 2011

Для этого есть библиотека с одной строкой кода

https://github.com/MugunthKumar/MKiCloudSync

11 голосов
/ 19 октября 2011

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

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

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

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

...