本文主要是介绍SEL与NSLog,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一、 SEL
方法的存储位置
- 每个类的方法列表都存储在类对象中
- 每个方法都有一个与之对应的SEL类型的对象
- 根据一个SEL对象就可以找到方法的地址,进而调用方法
SEL类型的定义
typedef struct objc_selector *SEL;
SEL对象的创建
SEL s = @selector(test);
SEL s2 = NSSelectorFromString(@"test");
SEL对象的其他用法
// 将SEL对象转为NSString对象
NSString *str = NSStringFromSelector(@selector(test));Person *p = [Person new];
// 调用对象p的test方法
[p performSelector:@selector(test)];
NSLog输出增强
- FILE :源代码文件名
- LINE :NSLog代码在第几行
- _cmd :代表着当前方法的SEL
// 下面的代码会引发死循环
- (void)test {[self performSelector:_cmd];
}
这篇关于SEL与NSLog的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!