概念
NSLog()可以使用 %@ 格式说明符来输出对象。NSLog()处理%@说明符时,会询问参数列表中相应的对象以得到这个对象的描述。从技术上来讲,也就是NSLog()给这个对象发送了description消息,然后对象的description方法生成一个NSString并将其返回。NSLog()就会在输出结果中包含这个字符串。在类中提供description方法就可以自定义NSLog()会如何输出对象。
在自定义的description方法中,你可以选择返回一个字面值NSString,如@“gkejlkgjlkghkehgl”,也可以构造一个用来描述该对象各类信息的字符串。在cocoa中,NSArray类管理的是对象的集合,它的description方法提供了数组自身的信息,例如数组中对象的个数和每个对象所包含的描述。当然,对象的描述是通过向数组中的对象分别发送description消息来获得的。
注意:%@只是调用每个对象的description方法并显示结果。
例代码
.h 文件:
#import "Person.h"
@interface Test : Person
@end
.m 文件:
#import "Test.h"
@implementation Test
- (NSString *)description {
return (@"1234567890");
}
@end
main()函数中:
Test *_oneTest = [Test new];
NSLog( @"%@", _oneTest );
输出结果:
时间: 2024-10-09 06:45:08