我正在为我的客户公司使用某种 iPad 目录应用程序(仅限)。他们有1000多种产品。每个产品可以有多个图像。可以从网络服务中设置每个产品是否显示在应用程序上。因此,例如,过时产品的数据和图像不会存在于应用程序中。当我的客户决定将数据与 Web 服务同步时。所有数据将被刷新,所有图像将被下载。必须删除任何过时或未使用的数据。
问题是,他希望这个应用程序即使没有互联网连接也能离线工作。
存储所有产品数据很好,因为我从 Web 服务中提取 JSON 格式的所有数据并将它们解析为 NSMutableDictionary 对象。即使它们将包含 1000 多种产品的数据,也应该没问题(我猜)。
但是对于图像,我不知道如何将它们保存在设备存储中以及引用它们的最佳方式。每个图像的大小应为 10Kb 或更小。
我目前的方法(我能想到的)是
- 将所有产品的数据存储在 NSMutableDictionary 中并使用 NSArchiver 的方法 archiveRoodObject:toFile (或者可能只是使用 [NSMutableDictionary writeToFile:atomically])
- 以某种方式将所有图像存储在设备存储中。
- 创建一个包含所有现有图像名称和路径的数组/字典,用作参考并将其存储在 NSArchiver 中(或者也可以只使用 [NSMutableDictionary writeToFile:atomically])。同步后不在此引用中的任何图像都将被删除。
这就是我之前对我以前客户的项目所做的方法。但该项目的应用程序包含不到一百张图片。而且,我觉得我做错了。
所以,如果你有什么好的建议,请告诉我。欢迎任何建议。
注意:我阅读了一些关于将图像存储到 CoreData 的封闭主题。但是,我现在真的不想尝试它,因为我以前没有任何经验,而且这个当前的项目时间紧迫。所以,如果不是真的需要,我很想稍后再试。
最后
我决定按照 Grager 的说法,迁移我的应用程序以使用 CoreData。但是,我可能会尝试先使用 writeToFile 来存储所有产品的信息,看看它是如何进行的。正如grager所说,尝试新事物也不错。最终,我们会得到一些东西。