Свойство из UITextInputTraits не может быть назначено - PullRequest
0 голосов
/ 06 марта 2019

Я сталкиваюсь со странной ошибкой компиляции при доступе к 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 Ответ

1 голос
/ 06 марта 2019

Свойство autocorrectionType имеет значение необязательно внутри UITextInputTraits, но когда вы явно объявляете его в MyEditingView , его более не является необязательным свойством. Я попытался сделать это необязательным свойством в MyEditingView и получил ту же ошибку компиляции.

...