複数のデバイスで同じデータにアクセスできるように、既存のアプリケーションを拡張してiCloudを使用できるように取り組んでいます。
ドキュメントベースのストレージを使用し、ファイルパッケージ(つまり、単一のファイルとして表され、によって処理されるファイルのディレクトリ)を使用することを計画していますNSFileWrapper
。
私の主な質問は、ファイルパッケージの更新がアトミックであることが保証されているかどうかです。アプリを開いて、1つのドキュメントパッケージ内のいくつかのファイルが変更された場合、iOSはそれらをダウンロードして、すべてのサブファイルが存在し、インプレースである場合にのみアプリに通知しますか?または、ファイルが1つずつ入り、一貫性のないパッケージが残る可能性があるというリスクはありますか?
また、私の既存のアプリはSQLiteを使用しています(コアデータではなく、カスタムラッパーを介して)。アプリの一部では、パフォーマンスのために、インデックス付きの優れたSQLデータベースが明らかに必要になります。したがって、私の計画は、iCloudデータを参照ストアとして使用し、Caches
パフォーマンス上の理由から(またはデバイスに対して厳密にローカルな場所に)SQLiteデータベースをディレクトリに保持し、iCloudの内容に基づいてデータベースを更新することです。ユーザーがアプリで行った変更は、iCloudとローカルデータベースの両方に記録されます。これはクレイジーですか、それとも合理的ですか?