我编写了以下代码来帮助将表单字段中的文本值转换为预期值:
protocol StringConvertableValueType {
init?(_ string: String)
}
extension Int: StringConvertableValueType {
}
extension String: StringConvertableValueType {
}
extension Double: StringConvertableValueType {
}
extension Float: StringConvertableValueType {
}
正如您所看到的,所有这些基元类型本身都已经支持相同的初始值设定项。然而倾注于documentation我找不到任何执行此操作的共享协议(protocol)
。尽管感觉我正在重新做一些创建基金会的人已经做过的事情。
是否已经存在某种协议(protocol)
来解决这个问题,或者构建Foundation
的人只是确保API确实一致,但没有强制执行的协议(protocol)是吗?
最佳答案
我相信您正在寻找的是LosslessStringConvertible
。 Int
继承自 FixedWidthInteger
。这种 transient 协议(protocol)继承不会出现在符合类型的文档中。 (这可能会令人困惑,如果这给您带来麻烦,您可能需要 open a radar 来扩展文档。)
关于swift - 是否存在确定类型应该用字符串初始化的协议(protocol)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56049077/