Czy Mogę używać iCloud do synchronizacji pliku plist NSUserDefaults

Zastanawiałem się, czy można użyć iCloud do synchronizacji pliku preferencji aplikacji między urządzeniami. Plik preferencji, o którym mówię, to com.domena.nazwa aplikacji.plik plist utworzony przez NSUserDafults do przechowywania preferencji aplikacji.

Chciałbym mieć możliwość synchronizacji pliku preferencji mojej aplikacji między dwoma różnymi urządzeniami (na przykład ipadem i iPhonem). Czy jest to dopuszczalne użycie synchronizacji iCloud? Czy muszę przekonwertować plik plist na innego typu dokumentu, przechowywać go w chmurze i konwertować z powrotem do pliku preferencji aplikacji po pobraniu go?

Dzięki!

Author: Jackson, 2011-10-18

3 answers

Jest dostępna biblioteka do tego z jedną linijką kodu

Https://github.com/MugunthKumar/MKiCloudSync

 13
Author: palaniraja,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-12-20 12:19:56

Podobnie jak MKiCloudSync , mam również bibliotekę na Githubie o nazwie SDCloudDefaults . Zamiast synchronizować automatycznie, zamiast NSUserDefaults używany jest nowy obiekt, który zapisuje się zarówno w iCloud, jak i NSUserDefaults. Oznacza to, że możesz zdecydować, które elementy są przechowywane lokalnie, a które w chmurze.

(znalazłem MKiCloudSync po zaimplementowaniu go. Myślę, że to sprytne, ale nie chcę synchronizować wszystkiego z iCloud, więc moje rozwiązanie nadal działa lepiej dla mnie.)

 16
Author: Stephen Darlington,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:26:17

Istnieje możliwość synchronizacji preferencji między urządzeniami za pomocą iCloud. Jednak zalecałbym, aby nie dzielić pliku plist między urządzeniami.

NSUbiquitousKeyValueStore powinien być odpowiedni do tego, co próbujesz zrobić. Jest bardzo podobny do NSUserDefaults, więc powinien być łatwy do odebrania.

Aby go użyć, po prostu włącz kom.jabłko.programista.ubiquity-kvstore-identyfikator uprawnień w pliku uprawnień i po prostu Powiel preferencje, które chcesz zsynchronizować wszechobecny magazyn wartości klucza. Gdy pojawi się w wszechobecnym kvstore, będziesz mógł go zobaczyć z aplikacji na innych urządzeniach. Możesz nawet synchronizować różne aplikacje, o ile używają tego samego identyfikatora.

Należy również zarejestrować się w nsubiquitouskeyvaluestoredidchangeexternalynotification notification, aby obserwować nowe zmiany i odpowiednio zaktualizować standardUserDefaults na urządzeniu.

 11
Author: kevinyc,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-10-19 00:33:31