我有什麼是核心數據實體,稱爲 「myDocument中」,它具有以下屬性核心數據存取器 - 前刪除
- 文件名
- fileExtension
- fileURL
我下載了一堆的文件,將它們保存在「緩存」文件夾中的磁盤上,然後在每個文檔的數據庫中插入行。這只是使它更容易管理應用程序中的文件,而無需列出目錄內容等...
一切看起來不錯,除了當我刪除實體時,我也想刪除磁盤上的關聯文件。我可以很容易地做這樣的事情
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。如果我將文檔保存在覈心數據中,每次預覽需要時都必須將文件從存儲的NSData寫入磁盤。它沒有意義,所以我決定將它們存儲在外部,並在DB中保留參考。
所以,我怎麼會寫一個自定義的訪問,將在之前的對象是即將被刪除,並刪除相關的文件,然後用刪除的實際實體進行跳躍..
在此先感謝
我可以覆蓋deleteObject並刪除那裏的文件嗎? –