Свойство из 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 и получил ту же ошибку компиляции.

Другие вопросы по тегам