是否存在确定类型可以使用String初始化的协议?

Dep*_*o B 4 string primitive-types foundation swift

我编写了以下代码,以帮助将文本值从表单字段转换为期望值:

protocol StringConvertableValueType {
    init?(_ string: String)
}

extension Int: StringConvertableValueType {
}

extension String: StringConvertableValueType {
}

extension Double: StringConvertableValueType {
}

extension Float: StringConvertableValueType {
}
Run Code Online (Sandbox Code Playgroud)

如您所见,所有这些基本类型本身已经支持相同的初始化程序。但是,翻阅文档,我找不到能protocol做到这一点的任何共享。尽管感觉像我正在重新做一些创建Foundation的人已经完成的事情。

是否protocol已经有某种方法可以解决此问题,或者构建人员Foundation只是确保API确实是一致的,但是没有协议来强制执行?

Rob*_*ier 5

我相信您正在寻找的是LosslessStringConvertibleInt继承自FixedWidthInteger。此瞬态协议继承未在文档中显示为符合类型。(这可能会造成混淆,如果给您带来麻烦,您可能想打开雷达来扩展文档。)