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ą:

  1. 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?
  2. 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.

  3. 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ć.

Author: David DelMonte, 2014-06-27

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.

 175
Author: Tom Harrington,
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