将基本值放入ValueTransformer

时间:2018-07-11 13:20:06

标签: swift

我正在尝试输出一个相对于在其他地方计算出的基准值的值。我希望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
    }
}

0 个答案:

没有答案