Ios 删除未使用的持久数据而不引用
我有一个与服务器通信的应用程序。在这个应用程序中,我有一个tableview,其中显示了我公司的几个人(他们的名字和姓氏以及他们的个人资料图像) 每当tableview打开或需要刷新时,我都会从服务器获取用户列表。这些用户都有一个image_名称,我试图在应用程序本身的数组中查找它。如果我在那里找不到它,我从documents目录加载它,如果我在那里找不到它,我也可以从我的服务器下载它,并在本地保存在设备上,以防止将来的下载 这非常有效,而且是管理用户及其图像的一种非常简单的方法,它还确保在多个用户具有相同图像时,我只下载一次图像(例如,当他们尚未上传图像时,公司徽标) 问题是,我没有保留这些用户的引用,因此应用程序不知道哪个用户使用了哪个图像,甚至不知道图像是否仍在使用 因此,当一个人有X图像时,它将被下载到iPhone上。如果用户A随后将其图像更改为Y,则应用程序将下载并正确显示图像Y。但是,图像X永远不会从持久数据中删除 我问你,stackoverflow社区,处理这个问题的最佳方式是什么Ios 删除未使用的持久数据而不引用,ios,core-data,persistent-storage,Ios,Core Data,Persistent Storage,我有一个与服务器通信的应用程序。在这个应用程序中,我有一个tableview,其中显示了我公司的几个人(他们的名字和姓氏以及他们的个人资料图像) 每当tableview打开或需要刷新时,我都会从服务器获取用户列表。这些用户都有一个image_名称,我试图在应用程序本身的数组中查找它。如果我在那里找不到它,我从documents目录加载它,如果我在那里找不到它,我也可以从我的服务器下载它,并在本地保存在设备上,以防止将来的下载 这非常有效,而且是管理用户及其图像的一种非常简单的方法,它还确保在多个
您可以向下载的图像添加前缀,在获取图像时,检查持久存储中的所有图像是否有此前缀,然后删除(如果有)。每次客户端回迁时,您应该只需要删除(最多)一个映像,这对客户端来说不会太重。在某个时间点,您有已使用映像的列表,在这个时间点,您还有一个保存到磁盘的映像列表。每天一次,您可以获取这些信息,并在后台线程上对使用的和保存的进行比较,然后删除它们。这不需要任何额外的数据存储
如果您想让图像在停止使用后挂起一段时间,您可以在每次使用该文件时“触摸”该文件(更新
fileModificationDate
),然后您可以检查所有图像的修改日期并在此基础上删除。fileModificationDate正是我要找的!我甚至不知道它的存在。