如何设置协议的可选属性?例如,UITextInputTraits具有许多可选的读/写属性。当我尝试以下操作时,出现编译错误(无法在“ textInputTraits”中分配给“ keyboardType”):
func initializeTextInputTraits(textInputTraits: UITextInputTraits) { textInputTraits.keyboardType = .Default }
通常,在访问协议的可选属性时,您会添加问号,但这在分配值时不起作用(错误:无法分配给该表达式的结果):
textInputTraits.keyboardType? = .Default
该协议如下所示:
protocol UITextInputTraits : NSObjectProtocol { optional var keyboardType: UIKeyboardType { get set } }
在Swift中是不可能的(还好吗?)。从ADF线程引用:
可选属性要求和返回值的可选方法要求,在访问或调用它们时,将 始终返回 适当类型 的可选值 ,以反映 可能尚未实现 可选要求的事实。 因此,轻松获得可选值也就不足为奇了。但是,设置属性需要 保证 实现。
可选属性要求和返回值的可选方法要求,在访问或调用它们时,将 始终返回 适当类型 的可选值 ,以反映 可能尚未实现 可选要求的事实。
因此,轻松获得可选值也就不足为奇了。但是,设置属性需要 保证 实现。