调用String.componentsSeparatedByString后,Xcode 6 beta 2调试器未显示变量内容

 书友79086887 发布于 2023-01-06 12:10

出于某种原因,当我单步执行Swift代码时,LLDB没有向我显示变量的内容.实际执行工作正常,但无论我尝试什么,我都看不到我的字符串的内容!

这是我在变量列表中看到的内容:

在此输入图像描述

此时type包含"名称"并value包含"Logan".但你不能告诉我们在这看.如果我使用"快速查看"按钮,则表示值为"(无)".

当我po从控制台尝试使用String 时,我得到了这种乱码:

(lldb) po space
error: :1:1: error: non-nominal type '$__lldb_context' cannot be extended
extension $__lldb_context {                            
^
:11:5: error: 'Space.Type' does not have a member named '$__lldb_wrapped_expr_0'
    $__lldb_injected_self.$__lldb_wrapped_expr_0(     
    ^     

但是这会有所不同 有时我会得到类似的东西:

class name = __NSAtom

要么

Printing description of [0]:
(String) [0] = {
  core = {
    _baseAddress = Builtin.RawPointer = 0x00000001004016f0
    _countAndFlags = -4611686018427387894
    _owner = Some {
      Some = (instance_type = Builtin.RawPointer = 0x0000000100401820 -> 0x00007fff7b3d5390 (void *)0x00007fff7b3d5340: __NSCFString)
    }
  }
}

要么

Printing description of declaration:
(String) declaration = 

...但绝不是字符串的实际内容!

更新:

我注意到问题似乎只是componentsSeparatedByString()在函数调用后才开始发生.(这发生在顶部,所以当我踩到时,我没有注意到调试器实际上确实显示了值,直到这一点.)所以这个函数发生了奇怪的事情.我已更新问题标题以反映这些新信息.

有趣的是,似乎一旦字符串被这个调用"破坏",你就无法在其他任何地方查看它,即使传递给另一个函数.并且任何常规字符串变量都不可见.肯定是一个错误,但我想知道是否有一个解决方法.调试程序真的很难!

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有