Alw*_*ing 3 ios swift codable decodable encodable
对于要序列化的示例结构: Person
struct Person {
let firstName: String
let lastName: String
}
Run Code Online (Sandbox Code Playgroud)
我们可以使其符合Encodable、Decodable或Codable协议。我知道我们在Encodable和 之间的选择Decodable取决于用例(例如,如果我们正在访问 API 并且不需要解码包含相同类型的响应),但我们也可以使其符合Codable如果结构是两者都用于编码和解码。
如果我们严格需要该结构体用于编码或解码,但不是两者,那么从性能角度来看,仅使用包罗万象Codable而不是指定Encodable/Decodable一致性是一个坏主意吗?
使用Codable而不是指定Encodable/的一个明显缺点Decodable是,另一个程序员可能会将该结构误解为用于编码和解码,而实际上只有两者之一发生。但如果我对性能非常感兴趣怎么办?
“性能”不存在单一维度。这取决于你的意思。例如,Encodable在不需要时添加一致性可能会增加二进制文件的大小,这可能会减慢启动时间。或者它可能是微不足道的,因为二进制大小与启动时间不太相关(因为文件是内存映射的)。或者您可能指的是编译时性能,其中明确添加自动生成的一致性显然需要一些额外的编译器工作,并且在某些情况下可能会增加类型检查器需要遍历的类型海洋,从而稍微减慢速度。
但对于日常工作,很难想象添加不必要的Encodable一致性会导致表视图滞后的情况,如果这就是您所说的性能。你的“另一个程序员可能会误解”的考虑要重要得多。
| 归档时间: |
|
| 查看次数: |
905 次 |
| 最近记录: |