在swift中将自定义类型转换为CGFloat

swi*_*ynx 1 types class ios swift

我有自己的小班:

class EPPercent {
    init(_: CGFloat) {

    }
}
Run Code Online (Sandbox Code Playgroud)

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

var percent: Any = 0
percent = EPPercent(100)
var toCGFloat = CGFloat(percent)
Run Code Online (Sandbox Code Playgroud)

这给出了一个错误:

"无法使用类型'(EPPercent)'的参数列表调用类型'CGFloat'的初始值设定项"

我该怎么做呢?

谢谢您的帮助 ;)

PGD*_*Dev 5

您可以创建extensionCGFloat,并创建一个接受的自定义初始化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)
Run Code Online (Sandbox Code Playgroud)

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