[Objective-cベース-2.10]descriptionメソッド

4723 ワード

A.インスタンスオブジェクト印刷-description
1.NSLog関数を使用して%@プレースホルダを使用すると、オブジェクトの-descriptionメソッドが呼び出されます.
2.-descriptionの戻り値を取得し、consoleに表示する
デフォルトの戻りポインタアドレス
 1 @implementation Person

 2 

 3 - (NSString *)description

 4 {

 5     return [NSString stringWithFormat:@"age = %d, name=%@", self.age, self.name];

 6 }

 7 

 8 @end

 9  

10 int main(int argc, const char * argv[]) {

11     @autoreleasepool {

12         Person *p = [[Person alloc] init];

13         p.age = 33;

14         p.name = @"  ";

15         NSLog(@"%@", p);

16     }

17     return 0;

18 }

 
 out:
2014-11-13 17:08:53.553 07-description
方法
[7765:303] age = 33, name=
張三
Program ended with exit code: 0
 
 
B.クラスオブジェクト+description
クラスオブジェクトに使用するオブジェクトの印刷方法を提供し、デフォルトではクラス名を返します.
 1 + (NSString *)description

 2 {

 3     return @"    Person ";

 4 }

 5  

 6 int main(int argc, const char * argv[]) {

 7     @autoreleasepool {

 8         Class c = [Person class];

 9         NSLog(@"%@", c);

10     }

11     return 0;

12 }

 
2014-11-13 17:12:15.890 07-description
方法
[7791:303] 
これは
Person
クラス#クラス#
Program ended with exit code: 0
 
C.NSLogの更なる機能
1.プレースホルダ%p:ポインタアドレスを印刷し、インスタンスオブジェクトの-descriptionメソッドを書き換えた後、このプレースホルダを使用してアドレスを印刷できます.
2.マクロ定義、NSLogは、行番号__などの様々なマクロ定義変数を提供するLINE__、ファイル名_FILE__など
sample: NSLog(@“%d”, __LINE__);