expr(void)NSLog(@“someString is%@”,someString)

时间:2013-03-07 14:28:22

标签: objective-c xcode4 lldb

我在断点中将此作为调试器操作:

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

但它正在bar:

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项目会导致同样的问题。

这可能是我在此特定项目的构建设置中更改的内容吗?

2 个答案:

答案 0 :(得分:3)

确保您没有从块中获取此代码。这可以解释为什么相同的断点在新项目中起作用而在另一个中不起作用。这是在块内的断点处尝试打印对象的值时发生的情况。解决方案是使用块中的NSLog来执行打印输出而不是使用断点。我知道这很烦人。

答案 1 :(得分:1)

除非您复制错误,否则我会说双引号字符无效。怎么样:

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

如果您确实正确复制了它,那么它就是known bug