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 回答