UITextInputTraits に準拠するオブジェクトとして UITextView にアクセスすると、奇妙なコンパイル エラーが発生します。
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 と同じです。
スウィフト 4.2、XCode 10.1