- #import <Foundation/Foundation.h>
- @interface Person : NSObject
- @property int age;
- @property NSString *name;
- @end
- #import "Person.h"
- @implementation Person
- //它决定了实例对象输出的结果
- - (NSString *)description
- {
- ///NSLog(@"%@",self);//这个会引发死循环
- //将_age,_name也输出屏幕上
- return [NSString stringWithFormat:@"age=%d name= %@", _age,_name];
-
- //return @"23434sfdf";
- }
- //它决定了类对象输出结果
- + (NSString *)description
- {
- //NSlog(@"abc");
- return @"abd";
- }
- @end
- #import <Foundation/Foundation.h>
- #import "Person.h"
- //-description方法,使用NSLog和%@输出某个对象时,会调用对象的-description方法,并拿到返回值进行输出
- //默认的打印是 《类名》+内存地址 ,但是字符串列外。
- int main(int argc, const char * argv[])
- {
- NSLog(@"__LINE__");
- //这个是输出当前行号。———FILE————输出文件路径。__func__输出函数。
-
- Person *c = [[Person alloc] init];
- NSLog(@"%p",c);//&c这个取出自己的地址
- return 0;
- }
- void test2()
- {
- //使用NSLog和%@输出某个类对象时,会调用类对象+description方法,并拿到返回值进行输出
-
- Class c =[Person class];
-
- NSlog(@"%@",c);
- }
- //这个是-号开头的description 测试
- void test()
- {
-
- Person *p = [[Person alloc] init];
- p.age = 20;
- p.name = @"Jack";
-
- //会调用系统中的- description方法。拿到(NSString *)返回 类名+内存地址
- NSLog(@"%@",p);
-
- //如果要输出10,或是更多的,那就用这种方法
- NSString *name = @"rose";
-
- //%@可以打印一个对象,也可以打印字符串。
- //NSLog(@"我的名字是YWF%@",name);
- }
复制代码 |
|