Свойство из UITextInputTraits не может быть назначено
Я сталкиваюсь со странной ошибкой компиляции при доступе к UITextView как объекту, соответствующему UITextInputTraits:
protocol MyEditingView:UITextInputTraits where Self: UIView {
}
extension UITextView:MyEditingView {
}
class SomeClass {
var editingView:MyEditingView = UITextView()
func someFunc() {
editingView.autocorrectionType = .no
}
}
"Невозможно присвоить свойству:" self "является неизменным"
Но если свойство явно объявлено в протоколе, без наследования от UITextInputTraits оно успешно компилируется.
protocol MyEditingView where Self: UIView {
var autocorrectionType: UITextAutocorrectionType { get set }
}
И объявление свойства такое же, как в UITextInputTraits.
Swift 4.2, XCode 10.1
1 ответ
Свойство autocorrectionType является необязательным внутри UITextInputTraits, но когда вы явно объявляете его в MyEditingView, его более не является необязательным свойством. Я попытался сделать это необязательным свойством в MyEditingView и получил ту же ошибку компиляции.