在苹果文档中发现,Codable协议是由Encodable和Decodable组成的。因此,
Codable = Encodable & Decodable现在,假设我实现了以下类,
class X: Codable {
var name: String
}
class Y: Encodable, Decodable {
var name: String
}
class Z: Encodable & Decodable {
var name: String
}那么,在X**,** Y 和 Z**?**这两个类之间有什么功能差异吗?
如果没有尊重,为什么我们不能在,的地方使用,
发布于 2020-03-12 10:34:52
不,没有任何区别,Codable是Encodable & Decodable的类型,所以它结合了您可以自由使用的2种协议
在Swift中,&与协议组合中的、相同,因此
Encodable, Decodable=Encodable & Decodable=Codable
发布于 2020-03-12 10:41:01
它们在功能上是相同的,但是您可以使用&语法来完成一些不能用逗号分隔的列表。这两种方法都不适用于逗号方法。
public typealias Codable = Decodable & Encodable
func doSomething(with item: ProtocolA & ProtocolB) {
}发布于 2022-03-17 07:59:33
编码将您的自定义类型实例转换为其他表示形式(如JSON和pList )的过程称为编码或序列化。对于编码,自定义类型符合可编码协议。
解码--将表示形式中的数据(如JSON或pList )转换为自定义类型的实例的过程称为解码或反序列化。对于解码,自定义类型符合可解码协议。
可编码既支持编码又支持解码,自定义类型可以符合可编码和可解码的可编码协议。
阅读有关可编码、解码和编码 单击此链接的更多信息
https://stackoverflow.com/questions/60652158
复制相似问题