sel类型
作用一: 查看对象或类是否有这个方法
查看对象是否有这个方法
// 将方法包装成对象
SEL sel = @selector(setAge:);
Person *p = [[Person alloc] init];
BOOL flag = [p respondsToSelector:sel];
查看类是否有这个的方法
SEL sel1 = @selector(test);
flag = [Person respondsToSelector:sel1];
作用二: 通过对象或类调用某一个SEL方法
SEL sel = @selector(demo);
Person *p = [Person new];
// 调用p对象中sel类型对应的方法
[p performSelector:sel];
SEL sel1 = @selector(signalWithNumber:);
// withObject: 需要传递的参数
// 注意: 如果通过performSelector调用有参数的方法, 那么参数必须是对象类型,
[p performSelector:sel1 withObject:@"13838383438"];
SEL sel2 = @selector(setAge:);
[p performSelector:sel2 withObject:@(5)];