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 |