gpt4 book ai didi

ios - 让我的简单结构在 Swift 4 中可编码不起作用

转载 作者:可可西里 更新时间:2023-11-01 00:38:57 26 4
gpt4 key购买 nike

我是 Swift4 的新手。我正在尝试使用 Codable 使我的 struct 类型对象可编码和可解码为 JSON。

这是我的结构产品:

//我声明它符合可编码

public struct Product: Codable {
public let name: String
public var isSold: Bool
public let icon: UIImage // problem is here



// I have excluded 'icon' from codable properties
enum CodingKeys: String, CodingKey {
case name
case isSold = “is_sold”
}
}

编译器告诉我错误:'UIImage' doesn't conform to 'Decodable',但我已经定义了 CodingKeys,它应该告诉我希望哪些属性可编码,我已经排除了 UIImage 属性。

我认为这样编译器就不会提示 UIImage 类型,但它仍然会提示。如何摆脱这个错误?

最佳答案

因为 UIImage 无法解码并且没有默认值,所以 Decodable 协议(protocol)不可能合成初始化程序。

如果您将 icon 设为可选的 UIImage 并将 nil 指定为默认值,您将能够从中解码结构的其余部分JSON。

public struct Product: Codable {
public let name: String
public var isSold: Bool
public var icon: UIImage? = nil
enum CodingKeys: String, CodingKey {
case name
case isSold = "is_sold"
}
}

您也可以使其成为非可选的并分配一个占位符图像。

请注意,根据 Swift 版本,您可能不需要 = nil 初始值。

关于ios - 让我的简单结构在 Swift 4 中可编码不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52165283/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com