-description
结果是
等价于下面
输出结果为
1.会调用
实例对象p的-description方法
2.拿到-description方法的返回值(NSString *)显示到屏幕上
一般情况下我们会重写description方法.
+description
1.会调用
类对象 Person的+description方法输出结果.
2.+description方法的返回值(NSString *)显示到屏幕上.
例如Class c = [Person class];
NSLog(@"%@" , c);
默认会输出"Person".
NSLog(扩展)
SEL 给方法的一个包装
1. 方法的存储位置
- 每个类的方法列表都存储在类对象中
- 每个方法都有一个与之对应的SEL类型的对象
- 根据一个SEL对象就可以找到方法的地址,进而调用方法
-
1. SEL对象的创建
SEL s = @selector(test);
SEL s2 = NSSelectorFromString(@"test"); NSSelectorFromString:把字符串数据传入,转成sel类型数据.
-
上面等价于 SEL s =@selector(tesr2);
[p performSelector s];
performSelector:调用p对象里的SEL类型数据方法 s.
SEL作用
1.把test2包装成SEL类型的数据.
2.根据SEL数据找到对应的方法地址
3.根据方法地址调用对应的方法.
如果要传入数据,用下面方法.
_cmd
是SEL类型数据 代表当前方法的SEL类型数据