Używam CloudKit do pobierania/przechowywania danych, ale chciałbym również mieć lokalną warstwę trwałości. Czy CloudKit oferuje możliwości lokalnego przechowywania danych? Czy powinienem użyć NSUserDefaults (NSKeyedArchiver/NSKeyedUnarchiver)?iOS Swift: Lokalna utrwalalność z CloudKit
6
A
Odpowiedz
3
Nie ma mechanizmu lokowania danych w CloudKit, musisz to zrobić sam. Mogę zasugerować, aby zapoznać się z EVCloudKitDao, która jest biblioteką wygody dla CloudKit, która obsługuje lokalne wpłaty do pliku.
0
Nie buforowanie wybudowany w CloudKit, w każdym razie, kiedy wdrożyć pamiętać do pamięci podręcznej tylko pola systemu w celu przywrócenia i synchronizacji z CloudKit ponownie sprawdzić to https://stackoverflow.com/a/35355916/1787109
można polecić jakieś artykuły lub zasobów do nauki więcej o lokalny przechowywanie z CloudKit? – colindunn
sprawdzone EVCloudKitDao, wow, jesteś ninja: D ** nie używasz żadnych 'Core Data', ale czy dobrze rozumiem, że masz klasy zdefiniowane w pakiecie, i z refleksją, którą ładujesz, instantiate , ustalić wartość? Wow, to jest trudne, DLACZEGO to odbicie, a nie Core Data? zasadniczo dane rdzenia robią to samo, z mniejszym kodem podstawowym ;-) –
Używam refleksji do pobierania i ustawiania wszystkich wartości ze zwykłego obiektu. Zatem jedyne, co musisz zrobić, to zdefiniować właściwości w obiekcie. EVCloudKitDao zajmie się resztą. Upewni się, że wszystkie właściwości zostaną dodane do CKRecord i na odwrót. Przechowywanie danych w rdzeniu byłoby opcją, ale nadal musisz analizować dane od i do CKRecord. Postanowiłem przechowywać dane lokalnie w plikach przy użyciu NSCoding zamiast zapisywać je w bazie danych. –