У меня есть простой класс, и я хочу использовать 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
Какова действительная причина этой ошибки?