我有什么是核心数据实体,称为 “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并删除那里的文件吗? –