アクティビティ
次のコマンドは、モバイルドキュメントをサポートするアプリ(Smultron 4やTextEditなど)でiCloudを操作しながら実行します–
sudo opensnoop -n ubd
–ユビキタスデーモンによって開かれたローカルファイルを表示します。ファイルには、ピアごとに1つのデータベースが含まれます。次のパスのピアごとに1つのディレクトリ:
~/Library/Application Support/Ubiquity
データの種類
進捗を測定する場合は、測定するタイプを決定します。
保存、進捗、測定
コアデータ
…ストアファイルではなく、変更ログファイルがiCloudにアップロードされ、ユーザーの他の各デバイスにダウンロードされます。同じiCloudアカウントに接続された別のデバイスから変更ログが届くと、Core Dataは受信した変更ログに基づいて、アプリのSQLiteデータベースのローカルコピーを更新します。iCloudとCore Dataは、各ローカルデータベースが同じ変更セットで更新されるようにします。…
考慮:変更ログの内容を解釈せずに、ログファイルのアップロードの進行状況を測定する価値はありますか?
文書
Mac Developer Libraryで:
…ドキュメントベースのアプリは自動保存を採用でき、そのドキュメントは適切なタイミングで自動的に保存されます…
また:
自動データ保存戦略によりユーザーが安心
…ユーザー関連の変更を保存する必要があるコード内の適切なポイント。これらの変更をディスクに自動的に書き込みます。…
ユーザーデータを自動的に保存できる適切な時期には、次のようなものがあります。
- ユーザーがアプリウィンドウを閉じたとき、またはアプリを終了したとき(applicationWillTerminate :)
- アプリが非アクティブ化されたとき(applicationWillResignActive :)
- ユーザーがアプリを非表示にしたとき(applicationWillHide :)
- ユーザーがアプリのデータに有効な変更を加えるたびに
最後の項目は、ユーザーのデータをいつでも保存する自由があることを意味します。たとえば、ユーザーがデータレコードのフィールドを編集している場合、各フィールドの値を変更時に保存するか、ユーザーが新しいレコードを表示するときにすべてのフィールドを待機して保存できます。これらのタイプの増分変更を行うと、データは常に最新のものになりますが、データモデルのよりきめ細かい管理も必要になります。…
考慮してください:これらの保存は非常に頻繁であり、量が非常に少ないため、測定する価値はありません。
item-info.db
私はローカルのMacのように見えるピアのデータベースを閲覧するためにSQLite Database Browserをいじりましたitem-info.db
。私が疑ったように、アプリが閲覧できるのはシステムがデータベースを使用していない間だけでした。プレビューを使用しUntitled.png
てiCloudで編集してから2秒以内に、データベースを閲覧できなくなりました。
参照資料
iCloud設計ガイド
Macアプリプログラミングガイド:コアアプリの設計: