我编写了以下代码以帮助将表单域中的文本值转换为预期值:
protocol StringConvertableValueType {
init?(_ string: String)
}
extension Int: StringConvertableValueType {
}
extension String: StringConvertableValueType {
}
extension Double: StringConvertableValueType {
}
extension Float: StringConvertableValueType {
}
正如您看到的,所有这些基元类型都已经支持相同的初始值设定项。然而,我无法找到任何这样做的共享
protocol
。虽然我觉得我在做一些已经由建造地基的人所做的事情。是否已经存在某种可以解决这个问题的
protocol
或者构建Foundation
的人只是确保API确实是一致的,但是没有强制执行它的协议? 最佳答案
我相信你要找的是。LosslessStringConvertible
从Int
继承这个。对于一致性类型,这种临时协议继承不会出现在文档中。(这可能会令人困惑,如果给您带来麻烦,您可能希望open a radar扩展文档。)