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 nowsze, więc będę mógł używać CloudKit. Zrobiłem kilka badań i nadal nie wiem, jak współdziałają Core Data, iCloud i CloudKit.
O ile rozumiem, CloudKit to tylko sposób na pobieranie i odzyskiwanie danych do / z chmury. Czy CloudKit to tylko inny sposób synchronizowania danych z iCloud?
Moje pytania to:
Jeśli korzystam z CloudKit, czy nadal muszę tworzyć lokalną podstawową bazę danych?
- Jeśli tak, czy zostanie automatycznie zsynchronizowany z iCloud, czy też 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 iOS nie jest podłączone do Internetu. Czytałem, że CloudKit będzie miał tylko ograniczone buforowanie.
- Jak to zadziała, jeśli konto iCloud nie jest włączone.
Jeśli ktoś może w pewnym sensie zepsuć, co każda technologia robi w procesie zapisywania i synchronizowania podstawowej bazy danych w trybie offline i online.
Obecnie rozumiem:
Dane podstawowe służą do lokalnego przechowywania danych
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, aby to pytanie nie zostało zamknięte.
Odpowiedzi:
To jest tak:
Jeśli chciałbyś używać CloudKit z podstawowymi danymi, musiałbyś napisać własny niestandardowy kod, aby tłumaczyć między zarządzanymi obiektami a rekordami CloudKit. Nie jest to niemożliwe, ale trzeba napisać więcej kodu. To może być bardziej wiarygodne, ale to zbyt wcześnie, aby powiedzieć na pewno.
Napisałem wpis na blogu opisujący CloudKit z perspektywy kogoś, kto w przeszłości korzystał z Core Data i iCloud.
Aktualizacja , czerwiec 2016 r .: Według najnowszej dokumentacji
NSPersistentStoreCoordinator
wszystko, co dotyczy danych podstawowych w usłudze iCloud, jest oznaczone jako przestarzałe. W rezultacie należy go prawdopodobnie unikać w przypadku nowego rozwoju.źródło
Wraz z iOS 13 firma Apple ogłosiła nowe funkcje danych podstawowych, aby lepiej współpracować z CloudKit. Głównym dodatkiem jest NSPersistentCloudKitContainer, który w zasadzie zarządza synchronizacją między danymi podstawowymi a CloudKit.
Możesz dowiedzieć się więcej w sesji WWDC Używanie danych podstawowych z CloudKit .
Firma Apple wydała również niezłą kolekcję dokumentów do tego właśnie zastosowania: tworzenie kopii lustrzanych magazynu danych podstawowych za pomocą CloudKit .
źródło