カテゴリに含まれるメディア オブジェクトのカタログ (プロパティと関連付けられた PFFile を含む) を取得する Parse を使用するアプリケーションを作成しています。(オブジェクトは多くのカテゴリに属することができ、カテゴリには多くのオブジェクトがあります)。
このアプリはオンラインで非常にうまく機能し、Parse Cache を使用することでオフライン機能も備えています。(つまり、オフライン中に、以前にオンライン中に表示したカテゴリ内のすべてのオブジェクトを表示することを選択した場合、いくつかの結果が表示されます)。
ただし、ユーザーがオフライン中に、オンライン中に以前に表示したことのないカテゴリ内のオブジェクトにアクセスできるようにする必要があります。(つまり、キャッシュされていないクエリを実行できるようにするため)。最初に、カテゴリとオブジェクトに対して「fetchAll」を実行するスタートアップ/同期プロセスを作成しました。これにより、すべてにオフラインでアクセスできるようになることを願っています。ただし、オフラインで新しいフィルター処理されたクエリを実行すると結果が得られないため、これは当てはまらないようです。(基本的に、ここで説明されている問題: https://parse.com/questions/offline-subquery-of-a-cached-query )。
だから私の質問は、これを達成するための最良の方法は何ですか? 私はいくつかの異なるオプションを検討しました:
Ray Wenderlich が、core-data - Parse の同期ハンドラーの作成に関するチュートリアルを公開しています。しかし、これは非常に複雑なようで、この問題にとって重要な関係を処理していません。
https://github.com/itsniper/FTASync - まだ詳しく調べていません
毎回 fetchAll クエリの結果を再利用し、結果の配列をフィルタリングします。ただし、これは遅くなる可能性があり、オフライン中は各オブジェクトの PFRelations もありません。
起動時/同期時にすべての可能なクエリを実行して、結果を常にオフラインで利用できるようにします。ただし、アプリケーションは最終的にカテゴリ内にカテゴリを持つため、これは妥当な数のクエリになる可能性があります。
ご意見/アドバイスを歓迎します。ありがとう