【问题标题】:Xcode Console "po" error: expression failed to parseXcode 控制台“po”错误:表达式解析失败
【发布时间】:2022-07-01 22:50:02
【问题描述】:

我的 Xcode 不能突然 po 任何东西,比如:

po param

error: expression failed to parse:
error: Couldn't realize type of self.

每次我在控制台中使用“po”打印一些东西时,它都会显示上面的错误。它发生在一个月前。

【问题讨论】:

  • 它是在所有项目的所有断点上执行此操作,还是仅在特定项目的特定位置执行此操作?如果您尝试使用pexpr 而不是po,是否有效?
  • 同样的问题,你解决了吗?
  • 我点击右键选择print 解决了这个问题...甚至认为它不如使用po

标签: ios swift xcode


【解决方案1】:

我知道这并不能解决问题,但同时您可以使用v param 来达到预期的效果。

https://stackoverflow.com/a/60064468/2347811

【讨论】:

  • 谢谢,还是不行,是不是XCode更新了?
  • 我找到了解决办法,点击右键,选择“打印”……嗯,虽然不如po,但是可以。
【解决方案2】:

如果您在依赖的子项目或框架内调试 Swift 类,该类必须有 @objc 注释,否则如果您尝试从断点检查变量,则会收到此错误在那个类里面。

不好:

public class Logger: NSObject {
    public static func debug(_ message: String, file:NSString = #file, function:NSString = #function, line:Int = #line) {
        log(message: message, file: file, function: function, line: line)
    }
(lldb) po message
error: Couldn't realize type of self

好:

@objc public class Logger: NSObject {
    public static func debug(_ message: String, file:NSString = #file, function:NSString = #function, line:Int = #line) {
        log(message: message, file: file, function: function, line: line)
    }
(lldb) po message
"This is the line I am logging"

【讨论】:

    猜你喜欢
    • 2013-01-17
    • 2017-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-16
    • 1970-01-01
    相关资源
    最近更新 更多