SEL其实是对方法的一种包装,将方法包装成一个SEL类型的数据,去找对应的方法地址。找到方法地址就可以调用方法
其实消息就是SEL
其实消息就是SEL
Person *p = [[Person alloc] init];
[p test2];
// NSString *name = @"test2";
// SEL s = NSSelectorFromString(name);
// [p performSelector:s];
// 间接调用test2方法
//[p performSelector:@selector(test2)];
//[p test3:@"123"];
// SEL s = @selector(test3:);
// [p performSelector:s withObject:@"456"];
//[p test2];
[p test2];
// NSString *name = @"test2";
// SEL s = NSSelectorFromString(name);
// [p performSelector:s];
// 间接调用test2方法
//[p performSelector:@selector(test2)];
//[p test3:@"123"];
// SEL s = @selector(test3:);
// [p performSelector:s withObject:@"456"];
//[p test2];
// 1.把test2包装成SEL类型的数据
// 2.根据SEL数据找到对应的方法地址
// 3.根据方法地址调用对应的方法
// 2.根据SEL数据找到对应的方法地址
// 3.根据方法地址调用对应的方法