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 myName
、print myName
、print [self myName]
などを試しましたが、その方法がわかりません。 LLDBを使用しようとしましたが、この人が遭遇したのと同じエラーが発生し続けます( lldbは "エラー: 'id'への参照があいまいです" )で変数値を出力できません。この質問に対する受け入れられた答えは、LLDBが壊れているので、GDBを使用する必要があるというものでした。しかし、私はそれほど根本的な何かが壊れていることを受け入れることを拒否します。
それでも、上記と同様のコマンドでGDBを使用してみました。ただし、GDBを機能させることもできません。助けてください
ブレークポイントを設定して実行し、プログラムがブレークポイントで停止したら、次のように表示する変数/値にカーソルを合わせます。
NSLog(@"%@", yourLabel.text);
を配置して、そのラベル/その他のオブジェクトタイプの内容を表示することもできます。
もう1つのオプションは、次のようにコンソールでGDBを実行することです。
gdb
attach <your process name>
次に、po
(print-object)コマンドを使用して、次のような変数の値を表示します。
po variableName
プリミティブ型(int
、float
、long
、double
、char
など)の値を表示するには、次のようにします。次のようにコンソールでGDBを実行しているときに、print
コマンドを使用します。
print yourPrimitiveVariable
お役に立てれば!
編集:
po
コマンドを使用すると、両方のプロパティ名を使用してオブジェクトの値を出力できます(self.myProperty
)またはivar名(おそらく_myProperty
)。私はここでこれを示します:
オブジェクトを出力するには、デバッグ領域で次の式を試してください。
p self.view.bounds.size.width
または使用、
po self.view
p-印刷は通常/単純な値を印刷するためにのみ使用されますが、po-オブジェクトの印刷はNSLogと同じように機能してオブジェクトの値を印刷します