10.黑马程序员-description方法、SEL

来源:互联网 发布:win10在端口23连接失败 编辑:程序博客网 时间:2024/06/05 18:56

一、  description方法


1.  description方法(返回值类型为NSString *)

使用NSLog和%@输出某个对象时,会调用对象的-description方法,并拿到返回值进行输出。默认情况下,结果是:<类名:内存地址>


2.  +description方法(返回值类型为NSString *)

使用NSLog和%@输出某个类对象时,会调用类对象的+description方法,并拿到返回值进行输出,默认返回类名。


3.  修改NSLog的默认输出

重写-description或者+description方法即可

 - (NSString *)description {     return [NSString stringWithFormat:@"age=%i", _age]; }


4.  注意

如果在-description方法中使用NSLog打印self,会死循环。


二、SEL


1.  方法的存储位置

   每个类的方法列表都存储在类对象中

   每个方法都有一个与之对应的SEL类型的对象

   根据一个SEL对象就可以找到方法的地址,进而调用方法

   SEL类型的定义

typedefstructobjc_selector    *SEL;

2.  SEL对象的创建

SEL s = @selector(test);SEL s2 = NSSelectorFromString(@"test");

3.  SEL对象的其他用法

// 将SEL对象转为NSString对象NSString*str = NSStringFromSelector(@selector(test)); Person *p= [Personnew];//调用对象p的test方法[p performSelector:@selector(test)];


0 0
原创粉丝点击