【发布时间】:2018-04-01 04:56:43
【问题描述】:
我正在从 JSON 解析中检索 URL,然后我想将该 URL 转换为 UIImage。这是我当前的数据结构:
struct Book: Decodable {
let author: String
let artworkURL: URL
let genres: [Genre]
let name: String
let releaseDate: String
}
我尝试过:
struct Book: Decodable {
let author: String
var bookArtwork: UIImage
let artworkURL: URL {
didSet {
do {
if let imageData: Data = try Data(contentsOf: artworkURL) {
bookArtwork = UIImage(data: imageData)!
}
} catch {
print(error)
}
}
let genres: [Genre]
let name: String
let releaseDate: String
}
但是那个does not conform to protocol 'Decodable'
其他人有解决方案吗?
【问题讨论】:
-
您的代码有几个问题:(1)在
init / init(from decoder:)中设置属性时不会触发属性观察器(2)let属性是常量,因此didSet无效