本帖最后由 dawn.dai 于 2014-4-29 00:05 编辑
-description方法: 使用NSLog和%@输出某个对象时,会调用对象的-description方法,并拿到返回值进行输出 ,决定了对象的输出结果;
+ description方法:使用NSLog和%@输出某个类对象时,会调用类对象+description方法,并拿到返回值进行输出,决定了类对象的输出结果。
@implementation Person
- (NSString *)description { return [NSString stringWithFormat:@"输出对象输出格式"]; }
+ (NSString *)description {
return [NSString stringWithFormat:@"输出类对象输出格式"];
}
@end
int main(int argc, const char * argv[]) {
@autoreleasepool {
Person *p =[Person new]; NSLog(@"%@",p); //默认输出格式是<类名:内存地址>,我写了- description就会按照我写的格式输出: 输出对象输出格式
Class c =[Person class]; NSLog(@"%@",c);//m默认是输出 类名,我重写+description同样会按我的意思输出: 输出类对象输出格式
} return 0;
}
|