本帖最后由 coding_wang 于 2015-9-7 00:38 编辑
SEL: 表示方法的存储位置,可以根据SELf的数据找到相应的方法地址
例如:
设有类 Animal 中有 running方法
Animal cat = [ Animal new ];
SEL s = @selector ( running );
此时 s中包含了 running方法在代码区中的地址信息
cat 对象 也可以利用 s 来执行running方法
[cat performSelecor:s]
选择器还可以查看
1)当前实例是不是某类或其派生类的实例对象;(这里是对象和类的关系)
实例名 isKindOfClass: 类名
2)当前实例是不是某类本身的实例对象(这里是对象和类的关系)
实例名 isMemberOfClass:类名
3)判断是否为指定类型的子类(这里是类和类的关系)
类名 isSubclassOfClass: [类名 class];
4)对象是否能够相应指定的方法
对象名 respondsToSelector : SEL;(要先将方法封装成SEL)
5)类中是否有指定的方法
类名 instancesRespondToSelector : SEL; (指类中是否定义了这个方法,不论是类方法或对象方法)
|
|