Cocoaには、PHPのprint_rやpythonのreprのような「ダンプ」はありません。これらの言語のように、オブジェクトを「表す」テキスト形式がないためです。使用する場合
NSLog(@"%@", myObj);
また
NSString *stringRep = [NSString stringWithFormat:@"%@",myObj];
また
NSString *stringRep = [myObj description];
オブジェクトの説明(ダンプではなく)を出力する目的でで[myObj description]定義されたメソッドの結果(最初のケースではコンソールにログに記録されます)を取得します。NSObject
po myObjgdbで呼び出すと、次のようになります[myObj debugDescription](多くの場合、と同じですdescriptionが、常にではありません)。
NSArrayandNSDictionaryとNSDataoverrideのようなクラスdescriptionは、その内容の非常に便利な再帰的説明を出力しますが、デフォルトで[NSObject description]は、インスタンスに対応するポインター値のみが出力されます。
問題の型のコードを制御する場合は、それらのメソッドdescriptionまたはdebugDescriptionメソッドをオーバーライドして、必要なものを返すことができます。そうでない場合は、カテゴリを使用してdescriptionorメソッドをオーバーライドするか、カテゴリを使用して、を使用してgdbから呼び出すことができるようなaまたはsomeを定義できます。debugDescriptionmyDebugDescriptionpo [myObj myDebugDescription]