2012-01-09 8 views
2

ブレークポイントにアクションを追加する際にlogコマンドまたはdebugコマンドを使用する方法を理解しようとしています。私はそれを把握していないようだ。次のような場合:Xcode 4、ブレークポイントを使用してオブジェクトをログまたはポップする

double currentZoom = [self getZoomScale]; 

現在のズームをプリントアウトするにはどうすればよいですか?私は自分のアクションとしてログを使用してみました、その後、

currentZoom: @(double)[email protected] // this didn't work 

currentZoom: @(double)[self getZoomScale]@ // also didn't work 

を行うことは、誰かがこの、私はブレークポイントと情報をログに記録する必要があるかもしれない他の情報との私を助けることはできますか?

また、poの単純な例です。もしあれば、

NSLog(@"%f", currentZoom); 

:?。あなたは、のNSLogを使用して、二重を印刷する次の行を追加したい場合はpo常にpo記述(あなたが記述のメソッドをオーバーライドしているしなければならないのように感謝

+0

たぶん私は何かを見逃していますが、単にNSLog(@ "%@"、[self getZoomScale]); ' – Faser

答えて

3

いあなたがコンソールにcurrentZoomを印刷したい場合は、あなたがPOを必要としない

...デバッガコンソールを使用します。平野pはenough.Thisだろうさ、種類

p currentZoom 

と表示され、現在のズームの値が表示されます。 poはオブジェクトです。あなたがNSNumberでcurrentZoomをラップするとしましょう。

NSNumber currentZoomNumber = [NSNumber numberWithDouble:currentZoom]; 

その後、値を印刷するために、あなたは私が言ったように

po currentZoomNumber 

をしなければならないでしょう、POはオブジェクトを印刷することで、印刷オブジェクトを意味します。したがって、NSStringsやNSNumberからNSDictionariesやNSManagedObjectsに任意のタイプのオブジェクトを印刷することができます。

+0

を使用したいとは思いません。もし誰かがNSLogに似たものを印刷したいのであれば、CFShow()のために行きます。 –

0

私はブレークポイントにアクションを追加する方法がわかりません。印刷C変数のGDB構文は

print (int) intNum 
print (float) floatNum 
1

あなたが作ることができるの

po objectName 

です(私が提供する任意の他の回答でそれを見ることに興味があります)

印刷オブジェクト用のgdb構文は次のとおりですブレークポイントはデバッガコマンドを実行します。

開き編集ブレークポイント]ペイン:

edit breakpoint pane

次に、デバッガコマンドを入力します(「評価後に自動的に続行」を選択することをお勧めします)。

自動デバッガコマンドの前後にコンテキストを挿入するには、「ログメッセージ」タイプの別のデバッガアクションを追加できます。 "Log Message"アクションは、変数自体を検査することはできません。

NSLog()はおそらく実装が簡単ですが、デバッグするコードを変更する必要があります。

関連する問題