iOS 协议中的可选属性该如何使用

1.UITextField 实现了UITextInput 协议,可是协议中的属性 selectionAffinity 虽然能调用,却无法正常运行,提示unrecognized selector

2.该如何使用协议中的属性

阅读 4.7k
3 个回答

1、一般来说,出现unrecognized selector错误是因为该对象没有实现对应方法,所以会报错,(也有可能是野指针导致的),具体你的问题不知道具体情况,不好分析
2、协议中的属性你可以想象成调用set/get方法,其实跟协议方法是一样的

协议中的可选属性或方法,一般来说在使用之前,应该判断一下, responseToSelector。但是对于系统内的控件(比如 UITextField)你是可以知道它有没有实现协议的某个属性或者方法的,所以对于确定的事情, 不判断也可以。

selectionAffinity 属性是在 iOS 8 之后引入的,你是在哪个版本的系统下测试的呢?

属性的使用都是点语法就可以了
@property (nonatomic) UITextStorageDirection selectionAffinity;
这样的写法默认是只读 所以会报这个错 unrecognized selector sent to instance ......

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题