簡體   English   中英

在lldb中切換到Objective-C模式

[英]Switch to Objective-C mode in lldb

當我用Xcode調試Swift應用程序時,調試器期望Swift格式的表達式。 如何將其切換為期望使用Objective-C表達式?

例如,我希望能夠鍵入expr id $foo = [[SomeClass alloc] initWithBar:@"quux"]; 而不是Swift的等效形式。

Swift 3.0或使用前:您可以使用以下命令來標識LLDB中所有可用語言的名稱。

(lldb)幫助<語言>

迅捷4.0

(lldb)幫助<源語言>

創建一個類似“ eco”的別名以打印Objective-C對象:

(lldb)command alias eco expression -l objective-c -o --
(lldb)eco [[UIApplication sharedApplication] userHomeDirectory] 
/Users/...

從WWDC 2018 使用Xcode和LLDB進行的高級調試表明,可以使用以下命令完成此操作:

expression -l objc -O -- [doYourStuff here]

但是要注意的是,從Swift切換到Objective C框架會創建一個新上下文 實際上,這意味着您可能會遇到類似以下的錯誤:

error: use of undeclared identifier 'self'

為了避免這個問題,你需要附上任何varables,那需要上下文改變之前進行評估,在反引號` 例如:

expression -l objc -O -- [`self` class]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM