2013-03-07 56 views
0

我有了這個作爲一個斷點調試器操作:EXPR(無效)的NSLog(@ 「someString是%@」,someString)

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

,但它與barfing:

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 

爲什麼它不起作用?

====
UPDATE

我在一個完全新的Xcode項目嘗試這樣做。它工作正常。因此,要清楚,這條線有在Xcode 4.6沒有語法問題:

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

但是,複製從斷點到同樣的問題我以前的Xcode項目的結果相同的一行。

難道這是我在這個特定項目的構建設置中更改的內容嗎?

回答

3

確保您沒有從一個塊內到達此代碼。這可以解釋爲什麼同一個斷點在一個新項目中工作,而不是在另一箇中。這是當在塊內的斷點處嘗試打印對象的值時發生的情況。解決方案是在塊中使用NSLog來執行打印輸出,而不是使用斷點。這很煩人,我知道。

+0

謝謝 - 是的,它在一個塊中被執行。想知道爲什麼。畢竟,someString是本地塊。有鏈接?我似乎無法找到任何信息。 – Snowcrash 2013-03-13 12:51:05

1

除非您複製該錯誤,否則我會說雙引號字符無效。如何:

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

如果你確實複製了它,那麼它是一個known bug

+0

他複製它從[這篇文章](http://stackoverflow.com/questions/742456/how-to-print-string-value-from-breakpoint-action-in-xcode-4)不正確,因爲它似乎... +1雖然 – Alladinian 2013-03-07 14:39:31

+0

否 - 我檢查的第一件事是語音標記。切勿複製和粘貼語音標記! Fwiw,我正在使用Xcode 4.6。有沒有解決方法? – Snowcrash 2013-03-07 14:41:21

+0

@SnowCrash不是我知道的;但是我知道我在Xcode 4.5和4.6中工作得很好,所以我認爲這應該沒有問題。但是,如果你正確地複製了引號,爲什麼他們在你的問題上不正確? – trojanfoe 2013-03-07 14:43:27

相關問題