【发布时间】:2017-11-21 07:36:54
【问题描述】:
所以我想为 NSNumber、Int、Double 和 Float 添加一个通用扩展,其中的值被转换为格式化的字符串。
我首先创建了一个自定义协议:
protocol MyFormatConvertible {
var toMyFormat: String { get }
}
extension NSNumber: MyFormatConvertible {}
extension Double: MyFormatConvertible {}
extension Float: MyFormatConvertible {}
extension Int: MyFormatConvertible {}
现在我正在尝试将格式添加到扩展中:
extension MyFormatConvertible {
public var toMyFormat: String {
let numberValue = NSNumber(value:self)
....
但这似乎不起作用,因为我收到了错误:
无法使用参数列表为“NSNumber”类型调用初始化程序 输入“(值:自我)”
关于如何解决这个问题的任何提示?
【问题讨论】:
标签: swift generics protocols protocol-extension