我正在开发一个具有离线功能的应用程序。我必须从网络中获取JSON数据并将其存储在核心数据中。其余的数据都很直观,但我想知道处理图像的最佳方法是什么。JSON响应给出了URL,然后我必须下载图像并将图像的数据存储到核心数据中。我正在使NSManagedObject可编码,以便可以捕获该URL。我有额外的可选变量albumImage
有数据。这是正确的方法吗?我将使用albumArtwork
来存储URL,使用该URL下载图像并将数据存储到albumImage
中。此模型中albumImage
的唯一目的是存储图像数据,而不是处理JSON响应。我只想知道有没有更好的方法来处理这个问题。
JSON格式:
{
"artistName": "Ozuna",
"id": "1433976640",
"releaseDate": "2018-08-24",
"name": "Aura",
"kind": "album",
"copyright": "℗ 2018 VP Records Corp./Dimelo Vi Dist. by Sony Music Entertainment U.S. Latin LLC",
"artistId": "283578837",
"artistUrl": "https://itunes.apple.com/us/artist/ozuna/283578837?app=music",
"artworkUrl100": "https://is2-ssl.mzstatic.com/image/thumb/Music128/v4/d7/60/f7/d760f7bf-e2bc-e48e-afcd-b9b562ad4c2f/697691884080.jpg/200x200bb.png"
}
处理JSON响应的模型:
public class Album: NSManagedObject, Codable {
@NSManaged public var artistName: String
@NSManaged public var albumName: String
@NSManaged public var copyrightInfo: String
@NSManaged public var albumArtwork: String
@NSManaged public var albumReleaseDate: Date
@NSManaged public var linkToAppStore: String
@NSManaged public var albumImage: NSData?
}
最佳答案
我建议您使用SDWebImage并仅将CoreData中的url存储为URI,而不是费心存储图像的数据
import SDWebImage
imageView.sd_setImage(with:url, placeholderImage: UIImage(named: "placeholder.png"))
使用下载缓存
关于ios - 使NSManagedObject可编码并存储图像数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52285091/