使用Swift
的{{1}}类时,可以选择一种格式样式(能量,长度,质量等),该样式将显示在字段的末尾,例如下面的示例:
我正在使用Eureka框架构建表单,并试图达到相同的效果,但是将“ cal”后缀替换为“ hours”。
所以最终结果应该像“ 10小时”。
我正在使用仅接受Int值的Eureka的Formatter
。
经过一些搜索,我设法找到了一种方法,该方法可以使用可分配给IntRow
的自定义格式化程序,但无法完全正常工作。当我尝试更改该字段的值时,该字段将变为空,没有任何值。
自定义格式代码:
IntRow
class NumberSuffixFormatter: Formatter {
var suffix: String!
init(suffix: String = "") {
self.suffix = suffix
super.init()
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
override func string(for obj: Any?) -> String? {
if let intValue = obj as? Int {
return "\(intValue) hours"
}
return nil
}
override func getObjectValue(_ obj: AutoreleasingUnsafeMutablePointer<AnyObject?>?, for string: String, errorDescription error: AutoreleasingUnsafeMutablePointer<NSString?>?) -> Bool {
obj?.pointee = string as AnyObject
return true
}
}
代码:
IntRow