我正在尝试输出一个相对于在其他地方计算出的基准值的值。我希望ValueTransformer能够解决问题,但我不知道如何将基本值添加到ValueTransformer中。下面显示的initWithBase函数无法正常工作。任何的建议都受欢迎。谢谢。
import Cocoa
class PercentTransformer: ValueTransformer {
var baseValue: Double = 1
override class func transformedValueClass() -> Swift.AnyClass {
return NSString.self
}
override class func allowsReverseTransformation() -> Bool {
return false
}
func initWithBase(base: Double) {
baseValue = base
return
}
override func transformedValue(_ value: Any?) -> Any? {
let inputValue = value as! Double
if inputValue == 0.0 {
return "--------------"
}
// calculate output value
let percent = inputValue/baseValue * 100
let output = String(format: "%.2e", inputValue) + " " + String(format: "%.1f", percent) + "%"
return output as NSString
}
}