我正在编写一个使用REST Api的应用程序,它提供JSON
响应。我正在使用CoreData
来存储来自JSON
的对象以支持离线功能。 Object有一些图像属性(来自JSON响应的图像URL)。
我的问题是我应该将图像属性存储为Data
(使用二进制数据)到CoreData
(可以检查使用来自CoreDataXCModel
的外部存储)还是我只需要存储图像path(As String)并使用某些库(例如Kingfisher
,AlamofireImage
,SDWebImage
来加载存储在Coredata中的图像网址的图像?哪一个更好的设计?
另外一件事是我们如何处理大图像?我们可以生成1个特定尺寸和1个完整图像尺寸的缩略图。
答案 0 :(得分:4)
我建议你将URL存储在数据库中并使用像SDWebImage这样的框架来加载。这些框架具有缓存机制,因此一旦加载了图像,它就会被缓存。
您最好也可以将缩略图图像作为JSON响应中的链接。
答案 1 :(得分:1)
保存urlString,我认为,在大多数情况下urlStrting是一个更好的解决方案,因为在3 g / 4 g时代手机App拥有更多的图像数据,本地商店他们是一件非常困难的事情,除非你拥有1024 TB的iPhone。
你应该提供一个界面,比如长按推送视图(或任何东西)告诉用户他们可以将图像保存到本地。
不要忘记首先加载本地图像,并提供一个界面告诉用户他们可以删除本地数据。