快速将自定义类型转换为CGFloat

时间:2018-10-26 06:46:24

标签: ios swift class types

我有自己的小课:

class EPPercent {
    init(_: CGFloat) {

    }
}

现在我想将此类的元素转换为CGFloat:

var percent: Any = 0
percent = EPPercent(100)
var toCGFloat = CGFloat(percent)

这会导致错误:

“无法使用类型为((EPPercent))的参数列表来调用类型为'CGFloat'的初始化程序”

我该怎么做?

谢谢您的帮助;)

1 个答案:

答案 0 :(得分:5)

您可以在extension中创建一个CGFloat,并创建一个接受EPPercent实例的自定义初始化程序。

class EPPercent {
    let value: CGFloat
    init(_ value: CGFloat) {
        self.value = value
    }
}

extension CGFloat {
    init(_ percent: EPPercent) {
        self = percent.value
    }
}

var percent = EPPercent(100)
var toCGFloat = CGFloat(percent)

如果您遇到任何问题,请告诉我。