简体   繁体   English

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

[英]Convert custom type to CGFloat in swift

I have my own little class: 我有自己的小课:

class EPPercent {
    init(_: CGFloat) {

    }
}

Now I want to convert an element of this class to CGFloat: 现在,我想将此类的元素转换为CGFloat:

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

This gives an Error: 这给出了一个错误:

"Cannot invoke initializer for type 'CGFloat' with an argument list of type '(EPPercent)'" “无法为类型为'(EPPercent)'的参数列表调用类型'CGFloat'的初始化程序”

How do I do this? 我该怎么做呢?

Thank you for your help ;) 谢谢您的帮助 ;)

You can create an extension of CGFloat and create a custom initializer that accepts an EPPercent instance. 您可以创建CGFloatextension ,并创建一个接受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)

Let me know in case you face any issues. 如果您遇到任何问题,请告诉我。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM