swift - 是否存在确定类型应该用字符串初始化的协议(protocol)?

标签 swift string foundation primitive-types

我编写了以下代码来帮助将表单字段中的文本值转换为预期值:

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

extension Int: StringConvertableValueType {
}

extension String: StringConvertableValueType {
}

extension Double: StringConvertableValueType {
}

extension Float: StringConvertableValueType {
}

正如您所看到的,所有这些基元类型本身都已经支持相同的初始值设定项。然而倾注于documentation我找不到任何执行此操作的共享协议(protocol)。尽管感觉我正在重新做一些创建基金会的人已经做过的事情。

是否已经存在某种协议(protocol)来解决这个问题,或者构建Foundation的人只是确保API确实一致,但没有强制执行的协议(protocol)是吗?

最佳答案

我相信您正在寻找的是LosslessStringConvertibleInt 继承自 FixedWidthInteger。这种 transient 协议(protocol)继承不会出现在符合类型的文档中。 (这可能会令人困惑,如果这给您带来麻烦,您可能需要 open a radar 来扩展文档。)

关于swift - 是否存在确定类型应该用字符串初始化的协议(protocol)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56049077/

相关文章:

swift - 为任意基于 Int 的枚举定义 Swift 协议(protocol)

c - 为什么我们不能将值赋给char指针的字符串?

string - 检查字符串的排列是否可以成为回文

swift - 如何在 Swift 类中嵌入静态结构?

html - UIMarkupTextPrintFormatter 从不渲染 base64 图像

ios - 初始化自定义类 UIVIew

swift - 在 Swift 中获取错误将十六进制值转换为 RGB

php - 匹配包含两个 "needles"的字符串

Swift:String starts(with:) vs hasPrefix

ios - 默认的 cookieAcceptPolicy 是什么