Xia*_*ang 6 core-data objective-c ios
我有一张专辑照片核心数据模型.照片实体有一列用于保存在磁盘上的实际照片文件的路径.删除照片和相册的最佳做法是什么?在核心日期删除项目之前,是否必须手动删除磁盘上的文件?照片对象很容易.但是对于一张专辑,这些照片可能已被级联删除规则删除,现在需要逐个循环处理这些文件.
对我来说,最好的做法是什么?
(我决定不使用"允许外部存储"来解决其他问题)
您可以prepareForDeletion在Photo托管对象子类中覆盖并删除那里的照片文件:
- (void)prepareForDeletion
{
[super prepareForDeletion];
[[NSFileManager defaultManager] removeItemAtPath:self.path error:nil];
}
Run Code Online (Sandbox Code Playgroud)
然后删除Photo对象会自动删除相应的文件,如果由于某些级联删除规则删除了该对象,它也会起作用.
更新:正如Xiaochao Yang所注意到的,覆盖didSave可能是更好的解决方案,特别是如果您使用托管对象上下文的撤消功能.比较" 删除Core Data对象时如何处理外部数据清理 "的各种答案.