Korzystanie z Core Data, iCloud i CloudKit do synchronizacji i tworzenia kopii zapasowych oraz ich wspólnego działania
Jestem na wczesnym etapie tworzenia aplikacji, w której chciałbym zapisywać, synchronizować i tworzyć kopie zapasowe danych. Aplikacja nie będzie przechowywać żadnych plików tylko dane w bazie danych. Będzie to iOS 8 i nowszy, więc będę mógł korzystać z CloudKit. Poszperałem trochę i nadal Nie wiem, w jaki sposób Core Data, iCloud i CloudKit współpracują ze sobą.
O ile rozumiem, CloudKit jest tylko sposobem na pobieranie i pobieranie danych do / z chmury. Czy CloudKit to tylko inny sposób synchronizacji danych z iCloud?
My pytania są:
-
Jeśli używam CloudKit, czy nadal muszę tworzyć lokalną bazę danych?
- Jeśli tak, czy zostanie automatycznie zsynchronizowana z iCloud lub będę musiał wywołać metody do przechowywania w obu miejscach?
Jeśli dane są przechowywane tylko w chmurze, użytkownik będzie mógł uzyskać do nich dostęp, gdy urządzenie z systemem iOS nie jest podłączone do Internetu. Czytałem, że CloudKit będzie miał tylko ograniczone buforowanie.
- Jak to będzie działać, jeśli konto iCloud jest nie włączone.
Jeśli ktoś potrafi rozłożyć to, co robi każda technologia w procesie zapisywania i synchronizacji baz danych w trybie offline i online.
Moje obecne zrozumienie to:
-
Podstawowe Dane są używane do przechowywania danych lokalnie
-
ICloud synchronizuje dane i przechowuje je w chmurze
CloudKit daje możliwość przechowywania i zarządzania danymi w chmurze??
Mam nadzieję, że podałem wystarczająco dużo informacji na to pytanie nie zamykać.
1 answers
Jest tak:
-
[4]}Podstawowe Dane same w sobie, są całkowicie lokalne i nie działają automatycznie z żadną usługą w chmurze firmy Apple.
- Core Datawith iCloud enabled włącza synchronizację przez iCloud. Wszelkie zmiany zapisane w danych podstawowych są przenoszone do chmury, a wszelkie zmiany wprowadzone w chmurze są automatycznie pobierane. Dane są przechowywane zarówno w iCloud, jak i w lokalnym trwałym pliku magazynu, więc są dostępne nawet wtedy, gdy urządzenie jest w trybie offline. Nie musisz. napisz dowolny kod specyficzny dla chmury, wystarczy dodać nasłuchiwanie przychodzących zmian (co jest bardzo podobne do zmian wprowadzonych w innym kontekście zarządzanego obiektu).
- CloudKit nie jest powiązany z podstawowymi danymi. To nie System synchronizacji, to system transferu. Oznacza to, że za każdym razem, gdy chcesz odczytać/zapisać dane w chmurze, musisz wykonać wyraźne wywołania API CloudKit, aby to zrobić. Nic nie dzieje się automatycznie. CloudKit nie przechowuje danych na urządzeniu, więc dane nie są dostępne, jeśli urządzenie jest w trybie offline. CloudKit dodaje również niektóre funkcje niedostępne dla podstawowych danych w iCloud - takie jak publiczne udostępniane Dane i możliwość pobierania tylko części zestawu danych zamiast całości.
Jeśli chcesz używać CloudKit z podstawowymi danymi, musisz napisać własny, niestandardowy kod, aby przetłumaczyć między zarządzanymi obiektami a rekordami CloudKit. Nie jest to niemożliwe, ale to więcej kodu do napisania. To Może być bardziej wiarygodne, ale jest zbyt wcześnie, aby powiedzieć na pewno.
Napisałem blog post opisujący CloudKit z perspektywy kogoś, kto używał Core Data i iCloud w przeszłości.
Aktualizacja , czerwiec 2016: od najnowsza dokumentacja dla NSPersistentStoreCoordinator
, wszystko, co związane z podstawowymi danymi w iCloud, jest oznaczone jako przestarzałe. W związku z tym należy prawdopodobnie unikać nowego rozwoju.
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
2016-06-21 18:26:48