标签:
在OC中,我们通过NSlog打印的时候往往使用:
NSlog(@"%@",myIPhone);
打印的结果,往往是我们所需要的一些信息, 但是%@其实本质只是取到一个地址.
我们先建一个Iphone类,声明如下的成员变量.
@public
float _cpu; //描述cpu功能的变量
float _ram; //描述内存功能的变量
IPColor _color; // 描述颜色的变量
IPSize _size; // 描述尺寸的变量
声明一个方法,在m文件中实现
- (void) aboutMyIphone{
NSLog(@"我的手机信息cpu:%f color=:%d size:%d ram:%f",_cpu,_color,_size,_ram);
}
在main函数中,我们导入头文件然后创建一个myIphone的对象并对它进行赋值,然后获取它的信息就可以通过调用上面这个方法.
但是想要直接在main文件中通过:
NSlog(@"%@",myIPhone);
打印,结果却是一个地址信息,并没有能通过调用上面函数的得到一个具体的字符串的信息.
所以,我们在Iphone类中写这样一个方法:
-(NSString *)description{
NSString*str=[NSString stringWithFormat:@"我的手机信息:cpu:%f ram: %f Color: %d Size:%d" ,_cpu,_ram,_color,_size];
return str;
}
这个description方法是NSObject中已经有的方法,我们只需要对它进行重写,即可将%@所得的地址改变为我们所需的字符串.
标签:
原文地址:http://www.cnblogs.com/FlyZebra110/p/4676087.html