A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 似神仙 中级黑马   /  2015-12-6 21:55  /  669 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

SEL实际上是对方法的封装
将方法封装成一个SEL类型的数据,去找对应的方法地址.
找到方法地址就可以调用方法
源码本质:  typedef struct objc_selector * SEL

通过SEL调用方法:
1.把test包装成SEL类型的数据
SEL s=@selector( 方法名: );
2.根据SEL数据找到对应的方法地址,根据方法地址调用对应的方法
无参:  [ p performSelector: SEL变量 ];
有参:  [ p performSelector: SEL变量  withObject: 参数 ];

另一种方法: 通过方法名字字符串调用方法
SEL s=NSSelectorFromString( @"方法名" );

把SEL转换成字符串
NSString *str=NSStringFromSelector( _cmd ); _cmd表示SEL

评分

参与人数 1黑马币 +6 收起 理由
黄金国 + 6 神马都是浮云

查看全部评分

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马