-4

次のようにコードに NSLog() 呼び出しを挿入しました。

NSLog(@"error message = %@", strError);

次のような結果が出力されることを期待しています。

error message = abcdefg

しかし NSLog() はこれを出力します:

error message = abcd

トリミング済みです。これは正しくないように思われたので、デバッグ コンソールで次のコマンドを入力しました。

po strError

これによる結果は予想どおりです。

abcdefg

poNSLog() とここで同じ結果が得られないのはなぜですか? for のように完全な文字列を出力したいのですpoが、私のプログラムは NSLog() を使用しており、切り捨てられた文字列を出力しています。

それはなぜですか、どうすれば修正できますか?

4

1 に答える 1

-1

テクニカルノートTN2124より

print-object(PO) は、指定されたオブジェクトの debugDescription メソッドを実際に呼び出します。NSObject は、description メソッドを呼び出してこのメ​​ソッドを実装します。したがって、デフォルトでは、オブジェクトのデバッグ記述はその記述と同じです。

NSLogdescriptionメソッドを呼び出しprint-object(PO)debugDescriptionメソッドを呼び出します。どちらも同じです。

于 2012-09-10T08:56:45.663 に答える