Czynność
Następujące polecenie uruchom podczas pracy z iCloud z aplikacjami (takimi jak Smultron 4 i TextEdit), które obsługują dokumenty mobilne -
sudo opensnoop -n ubd
- pokazuje lokalne pliki otwarte przez demona wszechobecności. Pliki obejmują bazy danych, po jednej bazie danych na peera. Jeden katalog na peera w następującej ścieżce:
~/Library/Application Support/Ubiquity
Rodzaje danych
Jeśli chcesz mierzyć postęp, zdecyduj, które typy mierzyć:
- Podstawowe dane
- dokumenty
- kluczowa wartość.
Oszczędności, postęp i pomiary
Podstawowe dane
… Pliki dziennika zmian, a nie plik sklepu, są przesyłane do iCloud i pobierane na każde inne urządzenie użytkownika. Gdy dziennik zmian przybywa z innego urządzenia podłączonego do tego samego konta iCloud, Core Data aktualizuje lokalną kopię bazy danych SQLite w aplikacji na podstawie otrzymanego dziennika zmian. iCloud i podstawowe dane zapewniają, że każda lokalna baza danych jest aktualizowana o ten sam zestaw zmian. …
Zastanów się: czy bez interpretowania zawartości dziennika zmian warto mierzyć postęp przesyłania pliku dziennika?
Dokumenty
W bibliotece programistów Mac:
… Aplikacje oparte na dokumentach mogą stosować automatyczne zapisywanie w miejscu, a ich dokumenty są automatycznie zapisywane w odpowiednich momentach…
Również:
Automatyczne strategie zapisywania danych Uwalniają użytkownika
… Odpowiednie punkty w kodzie, w których należy zapisać wszelkie zmiany związane z użytkownikiem i zapisać je automatycznie na dysku. …
Niektóre odpowiednie czasy, w których można automatycznie zapisać dane użytkownika, obejmują:
- Gdy użytkownik zamyka okno aplikacji lub zamyka aplikację (applicationWillTerminate :)
- Gdy aplikacja jest wyłączona (applicationWillResignActive :)
- Gdy użytkownik ukrywa Twoją aplikację (applicationWillHide :)
- Za każdym razem, gdy użytkownik dokona prawidłowej zmiany danych w aplikacji
Ostatni element oznacza, że masz swobodę zapisywania danych użytkownika w dowolnym momencie, gdy ma to sens. Na przykład, jeśli użytkownik edytuje pola rekordu danych, możesz zapisać każdą wartość pola w miarę jej zmiany lub możesz poczekać i zapisać wszystkie pola, gdy użytkownik wyświetli nowy rekord. Wprowadzanie tego rodzaju zmian przyrostowych zapewnia, że dane są zawsze aktualne, ale wymaga również bardziej szczegółowego zarządzania modelem danych. …
Zastanów się: te zapisy mogą być tak częste, a kwoty tak małe, że pomiar nie będzie opłacalny.
item-info.db
Korzystałem z przeglądarki SQLite Database Browser, aby przeglądać item-info.db
bazę danych w poszukiwaniu peera, który wydaje się być moim lokalnym komputerem Mac. Jak podejrzewałem, aplikacja mogła przeglądać tylko wtedy, gdy system nie korzystał z bazy danych - w ciągu dwóch sekund od użycia podglądu do edycji Untitled.png
w iCloud nie mogłem już przeglądać bazy danych ... i tak dalej.
Bibliografia
Przewodnik projektowania iCloud
Przewodnik programowania aplikacji na komputery Mac : Podstawowy projekt aplikacji: