0

これをブレークポイントのデバッガー アクションとして取得しました。

expr (void)NSLog(@"someString is %@", someString)

しかし、それは次のように主張しています:

error: warning: expression result unused
error: cannot find interface declaration for '$__lldb_objc_class'
error: cannot find interface declaration for '$__lldb_objc_class'
error: 2 errors parsing expression

なぜ機能しないのですか?

====
更新

まったく新しい Xcode プロジェクトでこれを試しました。そして、それはうまくいきます。したがって、明確にするために、この行には Xcode 4.6 で構文上の問題はありません。

expr (void)NSLog(@"someString is %@", someString)

ただし、まったく同じ行をブレークポイントから以前の Xcode プロジェクトにコピーすると、同じ問題が発生します。

この特定のプロジェクトのビルド設定で変更したものでしょうか?

4

2 に答える 2

3

ブロック内からこのコードにアクセスしていないことを確認してください。これにより、同じブレークポイントが新しいプロジェクトでは機能するが、他のプロジェクトでは機能しない理由が説明されます。これは、ブロック内のブレークポイントでオブジェクトの値を出力しようとすると発生します。解決策は、ブレークポイントを使用するのではなく、ブロックで NSLog を使用して印刷を行うことです。それは迷惑です、私は知っています。

于 2013-03-12T22:49:55.780 に答える
1

間違ってコピーしない限り、二重引用符は無効です。どうですか:

expr (void)NSLog(@"someString is %@", someString)

正しくコピーした場合、それは既知のバグです。

于 2013-03-07T14:35:37.057 に答える