Конвертировать пользовательский тип в CGFloat в Swift - PullRequest
0 голосов
/ 26 октября 2018

У меня есть свой маленький класс:

class EPPercent {
    init(_: CGFloat) {

    }
}

Теперь я хочу преобразовать элемент этого класса в CGFloat:

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

Это дает ошибку:

"Невозможно вызвать инициализатор для типа 'CGFloat' со списком аргументов типа '(EPPercent)'"

Как мне это сделать?

Спасибо за вашу помощь;)

1 Ответ

0 голосов
/ 26 октября 2018

Вы можете создать 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)

Дайте мне знать, если у вас возникнут какие-либо проблемы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...