web-dev-qa-db-ja.com

Xcodeデバッガーを使用してプロパティの内容を印刷するにはどうすればよいですか?

IOSアプリを作成していますが、組み込みのXcodeデバッガーの使用についてサポートが必要です。 3つのプロパティを持つHomeViewControllerというオブジェクトがあるとします。

@property (nonatomic) BOOL finished;
@property (nonatomic, strong) NSArray *myArray;
@property (nonatomic, strong) NSString *myName;

@synthesize finished = _finished, myArray = _myArray, myName = _myName;

このクラスにブレークポイントがあるとします。これらのプロパティの内容をどのように表示しますか? po myNameprint myNameprint [self myName]などを試しましたが、その方法がわかりません。 LLDBを使用しようとしましたが、この人が遭遇したのと同じエラーが発生し続けます( lldbは "エラー: 'id'への参照があいまいです" )で変数値を出力できません。この質問に対する受け入れられた答えは、LLDBが壊れているので、GDBを使用する必要があるというものでした。しかし、私はそれほど根本的な何かが壊れていることを受け入れることを拒否します。

それでも、上記と同様のコマンドでGDBを使用してみました。ただし、GDBを機能させることもできません。助けてください

14
Nosrettap

ブレークポイントを設定して実行し、プログラムがブレークポイントで停止したら、次のように表示する変数/値にカーソルを合わせます。

enter image description here

NSLog(@"%@", yourLabel.text);を配置して、そのラベル/その他のオブジェクトタイプの内容を表示することもできます。

もう1つのオプションは、次のようにコンソールでGDBを実行することです。

gdb
attach <your process name>

次に、po(print-object)コマンドを使用して、次のような変数の値を表示します。

po variableName

プリミティブ型(intfloatlongdoublecharなど)の値を表示するには、次のようにします。次のようにコンソールでGDBを実行しているときに、printコマンドを使用します。

print yourPrimitiveVariable

お役に立てれば!

編集:

poコマンドを使用すると、両方のプロパティ名を使用してオブジェクトの値を出力できます(self.myProperty)またはivar名(おそらく_myProperty)。私はここでこれを示します:

enter image description here

25
pasawaya

オブジェクトを出力するには、デバッグ領域で次の式を試してください。

p self.view.bounds.size.width

または使用、

po self.view

p-印刷は通常/単純な値を印刷するためにのみ使用されますが、po-オブジェクトの印刷はNSLogと同じように機能してオブジェクトの値を印刷します

2
Bhavik Modi