【问题标题】:Xcode debug issues with realm领域的 Xcode 调试问题
【发布时间】:2015-12-09 18:14:52
【问题描述】:

我有点困惑,为什么 p self.sessionpo self.session 返回不同的值?

在调试过程中我应该信任哪一个?看起来我的对象是nil,但它也似乎不是。

我的session.messages 是 nil 还是已设置???

【问题讨论】:

    标签: xcode swift realm lldb


    【解决方案1】:

    我想我应该阅读文档。

    调试

    使用 Realm 的 Swift API 调试应用程序必须通过 LLDB 完成 控制台。

    请注意,虽然 LLDB 脚本是通过我们的 Xcode 插件安装的 允许在 Xcode 的 UI 中检查 Realm 变量的内容, 这还不适用于 Swift。相反,这些变量将显示 不正确的数据。你应该改用 LLDB 的 po 命令来检查 存储在 Realm 中的数据内容。

    【讨论】:

      【解决方案2】:

      这样基本就清楚了:

      1) lldb p 命令(expr -- 的别名)评估“--”之后的表达式,然后使用内存检查和 lldb 中的“数据格式化程序”机制(类型摘要和合成子项,请参阅:http://lldb.llvm.org/varformats.html 了解更多详细信息)以打印变量的值。

      2) lldb po 命令(expr -O -- 的别名)计算给定表达式,然后询问结果对象是否有描述自身的方式(ObjC 中的 descriptiondebugDescription 方法或 Swift 中的 Mirror),如果是,则打印该对象返回的字符串。如果不是,则返回 #1 的结果。

      很可能,Realm 正在使用一些数据格式化程序通过 p 为 ObjC 呈现他们的对象,而那些对于 Swift 尚不存在。但该对象仍然知道如何正确呈现其调试描述,这就是 po 起作用的原因。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-12-31
        • 1970-01-01
        • 2017-08-26
        • 1970-01-01
        • 2013-12-13
        • 1970-01-01
        相关资源
        最近更新 更多