我正在开发一个具有离线功能的应用程序。我必须从网络中获取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/

10-11 03:24
查看更多