在iPad的存储中存储1000 +图像



我正在使用某种适用于iPad的目录应用程序(仅(为我的客户公司。他们有1000 +的产品。每个产品可以有多个图像。可以从 Web 服务设置每个产品是否在应用程序上显示。因此,例如,过时的产品数据和图像将不存在于应用程序中。当我的客户决定将数据与 Web 服务同步时。所有数据将被刷新,所有图像将被下载。必须删除任何过时的数据或未使用的数据。

问题是,他希望这个应用程序即使在没有互联网连接的情况下也能离线工作。

存储所有产品的数据很好,因为我从 Web 服务中提取所有 JSON 格式的数据并将它们解析为 NSMutableDictionary 对象。即使它们将包含1000 +产品的数据,也应该没问题(我猜(。

但是对于图像,我不知道如何将它们保存在设备存储中以及引用每个图像的最佳方式。每个图像的大小应为 10Kb 或更小。

目前的方法(我能想到的(是

  • 将所有产品数据存储在NSMutableDictionary中,并使用NSArchiver的方法archiveRoodObject:toFile(或者可能只使用[NSMutableDictionary writeToFile:atomally](
  • 以某种方式将所有图像存储在设备存储中。
  • 创建一个数组/字典,其中包含所有要用作参考的现有图像名称和路径,并将其存储在NSArchiver中(或者也可以使用[NSMutableDictionary writeToFile:atomally](。同步后不在此引用中的任何图像都将被删除。

这就是我之前在上一个客户的项目中采用的方法。但该项目的应用程序包含的图像不到一百张。而且,我觉得我做错了。

所以,如果你有什么好的建议,请告诉我。欢迎任何建议。

注意:我读了一些关于将图像存储到 CoreData 中的封闭主题。但是,我现在真的不想尝试它,因为我以前没有任何经验,而且当前的项目时间表很紧。所以,如果不是真的需要,我很想稍后尝试。

最后

我决定像更严肃地说的那样,迁移我的应用程序以使用CoreData。但是,我可能会尝试先使用 writeToFile 来存储所有产品的信息,看看它是如何进行的。正如Graver所说,尝试新事物也不错。最终,我们会得到一些东西。

您唯一的更改是使用CoreData。将产品详细信息和图像的本地路径保留在数据库中,但实际图片文件保留在存储中,即。应用的文档目录中的目录。CoreData 为您提供了归档所有数据永远无法实现的性能。如果您没有使用 CoreData 的经验,我认为您将节省阅读文档和实施它的时间,而不是考虑包含存档、保持文件跟踪等复杂解决方案。您将在下一个项目中获得使用CoreData的经验:)二合一

最新更新