gpt4 book ai didi

swift - 使用任何类型的 Codable 对象创建 Codable 对象?

转载 作者:行者123 更新时间:2023-11-28 09:35:28 25 4
gpt4 key购买 nike

我希望创建一个类来存储 Date 和任何符合 Codable 协议(protocol)的对象。我希望此类也符合 Codable 协议(protocol)本身。

我可以按如下方式为一个对象执行此操作:

class CodableContainerA: NSObject, Codable {
var date: Date?
var item: CodableTypeA?
}

我宁愿不必为我拥有的每个 CodableTypeX 创建一个单独的 CodableContainerX。

我目前的解决方法是创建一个名为 CodableBaseClass 的类,该类符合 Codable,从中派生每个 CodableType 并按如下方式定义我的类:

class CodableContainer: NSObject, Codable {
var date: Date?
var item: CodableBaseClass?
}

这似乎还有很长的路要走,感觉我应该能够通过使 CodableType 符合协议(protocol)来完成某些事情,但我不确定如何做。如果我将 item 定义为 Codable?(Any & Codable)? 类型,我会收到一条错误消息

类型“CodableContainer”不符合协议(protocol)“Decodable”

我正在使用 Swift 4。

我们将不胜感激地接受任何帮助或建议。非常感谢,

最佳答案

这就是泛型类的用途:

class CodableContainer<T: Codable>: NSObject, Codable {
var date: Date?
var item: T?
}

关于swift - 使用任何类型的 Codable 对象创建 Codable 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48115837/

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