iOS Core Data 图像实际上并未被删除

Posted

技术标签:

【中文标题】iOS Core Data 图像实际上并未被删除【英文标题】:iOS Core Data images not actually being deleted 【发布时间】:2017-03-01 00:50:46 【问题描述】:

我有一个应用程序使用表格视图将图像从相机保存到 Core Data。当我滑动删除时,一切看起来都很好。将图像加载到应用程序后,我在管理存储的设备设置中看到应用程序大小增加,因为它应该会增加。但是当我滑动删除时,应用程序大小永远不会减小,即使我将它们全部删除。有没有人有过类似的经历。

【问题讨论】:

检查您是否真的删除并保存了核心数据的上下文。如果您不这样做,它将不会被删除 @Vinodh 这就是我在删除函数 context.delete(objects_here) appDelegate.saveContext() 中添加的内容 【参考方案1】:

您可能会从CoreData 中删除条目,但不会从文档目录中删除实际资源。

您可以使用文件管理器的removeItem方法将文件从应用程序文档目录中删除,然后检查大小是否有任何变化。

【讨论】:

检查后,Core Data 没有将图像或任何内容保存在文档目录中。 那么你可能正在写图像。你能分享你的代码吗? func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCellEditingStyle, forRowAt indexPath: IndexPath) if (editingStyle == UITableViewCellEditingStyle.delete) var objs = controller.fetchedObjects let object = (objs?[ indexPath.row]) // print(object!) DatabaseController.getContext().delete(object!) DatabaseController.saveContext() tableView.reloadData() 是否有更好的方法在这里发布代码 @user2103669 您可以编辑您的问题并将代码放在那里。但在这里你只是从 coredata 中删除我猜的对象。

以上是关于iOS Core Data 图像实际上并未被删除的主要内容,如果未能解决你的问题,请参考以下文章

Core Data 无法删除从未插入的对象错误

在 IOS6 中使用 Core Data(删除/编辑)

删除应用程序时是不是会从设备中删除 Core Data 数据库?

iOS Core Data 无法从存储的 URI 打开图像

如何在 Core Data iOS Swift 中删除和更新结构类型数组?

当应用程序从 4.0 中的任务列表中删除时,Core Data 存储消失