私が持っているのは、これらのプロパティを持つ「MyDocument」と呼ばれるコア データ エンティティです。
- ファイル名
- ファイル拡張子
- ファイルURL
サーバーから一連のファイルをダウンロードし、それらをディスクの「キャッシュ」フォルダーに保存してから、各ドキュメントの DB に行を挿入します。これにより、ディレクトリの内容などを一覧表示することなく、アプリ内のドキュメントを簡単に管理できるようになります...
エンティティを削除するときに、ディスク上の関連ファイルも削除したいことを除いて、すべて問題ないようです。私は簡単にこのようなことをすることができました
for(MyDocument *myDocument in ParentEntity.mydocuments)
{
[[NSFileManager defaultManager] removeItemAtURL:[NSURL fileURLWithPath:myDocument.fileURL] error:nil];
[context deleteObject:myDocument];
}
しかし、アクセサーを介してこれを実行しようとしています....deleteObject:myDocument
どこからでも呼び出すことができ、関連するファイルも確実に削除されるようにします。
Core Data の外部ファイル ストレージ オプションを使用できることはわかっていますが、これについてまったく心配する必要はありませんが、QLPreviewController を使用してこれらのドキュメントをプレビューしています。QLPreviewController には、アイテムをプレビューできるファイル URL が必要です。ドキュメントを Core Data に保存すると、Preview がファイルを必要とするたびに、保存された NSData からファイルをディスクに書き込む必要があります。意味がなかったので、自分で外部に保存し、DB に参照を保持することにしました。
では、オブジェクトが削除される直前にジャンプして関連ファイルを削除し、実際のエンティティの削除を続行するカスタム アクセサーを作成するにはどうすればよいでしょうか。
前もって感謝します