Неустранимая ошибка: не удалось определить тип ключевого пути - PullRequest
0 голосов
/ 10 апреля 2020

У меня есть простой класс, и я хочу использовать keypath в init, что-то вроде этого:

class V: UIView {
    convenience init() {
        self.init(frame: .zero)
        self[keyPath: \.alpha] = 0.5
    }
}

Когда я запускаю этот код, я получаю ошибку времени выполнения:

Неустранимая ошибка: не удалось выделить тип пути из '����XD':

Но если я укажу тип в keyPath, он будет работать нормально:

class V: UIView {
    convenience init() {
        self.init(frame: .zero)
        self[keyPath: \UIView.alpha] = 0.5
    }
}

let v = View()
print(v.alpha) \\ prints 0.5

Но еще более странно, что этот код работает:

class V: UIView {
    convenience init() {
        self.init(frame: .zero)
        foo()
    }

    func foo() { 
        self[keyPath: \.alpha] = 0.5
    }
}

let v = View()
print(v.alpha) \\ prints 0.5

Какова действительная причина этой ошибки?

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