我想创建一个类型为Codable的变量,并在JSONEncoder类中使用它。我认为下面的代码应该可以正常工作,但是它给了我一个错误:
如何声明可编码变量,以便JSONEncoder不会出错?无法调用类型为
(Codable)
的参数列表的encode
。
struct Me: Codable {
let id: Int
let name: String
}
var codable: Codable? // It must be generic type, but not Me.
codable = Me(id: 1, name: "Kobra")
let data = try? JSONEncoder().encode(codable!)
这里有一个类似的问题,关于如何使用函数传递Codable。但是我正在寻找如何使用变量(类变量)设置Codable。
Me
有什么问题吗? - Leo DabusJSONEncoder
和JSONDecoder
需要具体类型,而Codable
不是具体类型(类型为Codable?
的变量被称为 _存在类型_)。你能在这里展示一下你的使用案例吗?这个变量还可以放入什么内容? - Itai Ferber