1

iCloud と CoreData を使用しているときに問題が発生しています。1 つのデバイスでコア データ データベースを更新すると、iCloud はデータを 2 番目のデバイスに正しく同期します。

ただし、コア データを変更する前に、両方のデバイスでアプリを実行しているとします。私の 2 番目のデバイスはすでに NSFetchRequest を作成しています (これを fetchRequest1 と呼びます)。2 番目のデバイスで iCloud からのインポートが成功した後、同じ要求を fetchRequest1 から再度呼び出すと、すべての新しいデータ (挿入されたもの) が返されますが、以前に存在したエンティティへの更新は含まれていません。

アプリケーションを閉じて再度開くと、すべてが正しく表示されるため、何かが奇妙にキャッシュされているようです。さらに、フェッチ リクエストを作成して各エンティティをループし、それぞれに対して NSManagedObjectContext refreshObject メソッドを呼び出すと、データが表示されます。ただし、大規模なデータベースではこれを処理できないため、これが常に理想的であるとは限りません。

この問題の原因、または NSManagedObjectContext オブジェクトのフェッチ要求のためにキャッシュをフラッシュする方法を知っている人はいますか?

4

0 に答える 0