1、创建选择器
//通过@selector关键字,传入一个消息名,创建出来的选择器,装的就是消息
SEL sel = @selector(bark);
//通过一个表示方法名的字符串转换成一个选择器
// SEL sel = NSSelectorFromString(@"bark");
//将选择器转换成字符串
//NSString * str = NSStringFromSelector(sel);
2、选择器的执行
//先去判断一下对象是否会对该选择器做出响应,如果可以做出响应,就可以执行选择器,如果没有响应,说明选择器中的方法不存在
if ([dog respondsToSelector:sel]) {
NSLog(@"存在该方法");
[dogperformSelector:sel];
}else{
NSLog(@"不存在该方法");
}
//带参数的选择器的执行
//系统会自动把performSelector:携带的参数按顺序赋值给方法的每个形参,最多可以携带两个参数,如果需要携带多个参数,可以对参数进行封装(如数组)
//SEL sel1 = @selector(setName:);
SEL sel1 = @selector(setName:andAge:);
if ([dog respondsToSelector:sel1]) {
// [dog performSelector:sel1 withObject:@"Tom"];
[dog performSelector:sel1withObject:@"Tom"withObject:@"2"];
}