私のアプリでは、Core Data sqliteにこの単純なメモ<->>写真の関係があり、写真は「外部ストレージを許可」のバイナリデータであり、削除ルールはメモカスケード写真、写真無効化メモです。写真付きのメモを追加して削除しようとすると、iPhone Simulatorディレクトリで問題なく表示されます(外部の写真ファイルが削除されます)。しかし、iCloud同期を使用してiPhoneで試してみると、アプリのiCloudストレージサイズは写真を追加するたびに増加し続けますが、メモや写真を削除した後は決して減少しません-何かアイデアはありますか?
質問する
667 次
1 に答える
4
写真を削除しましたが、トランザクションログはまだ残っています。Core DataのiCloud統合はトランザクションに基づいています。変更を保存するたびに、新しいトランザクションログが作成されます。トランザクションには、データの作成、更新、または削除が含まれます。トランザクションログは、基盤となるiCloudソフトウェアがそれについて何かをすることを決定するまで残ります。
写真を作成すると、オブジェクトを作成し、写真データを含むトランザクションログを取得します。写真を削除すると、その写真を削除するように指示するトランザクションログが表示されます。2番目のログは最初のログをキャンセルせず、追加します。これで両方のトランザクションログが作成され、写真データはまだそこにあります。
ある時点で、基礎となるiCloudコードがログを合体させ、その時点で写真が実際に消えるはずです。あなたはそれを実現することはできません、しかし、あなたはそれが将来あなたのために起こるまで待たなければなりません。
于 2013-03-26T16:42:14.303 に答える