我之前问过一个类似的问题 here 。这个版本有更简单的例子

更新摘要:Xcode 在调试器变量部分中为每个字符串显示“失败”。 Swift print() 语句显示正确的变量值。所有其他数据类型都正确显示。我如何返回到一个有效的可执行文件?

问题:Xcode 显示的变量值不正确。最初这发生在一个项目中。现在,每个项目,包括新项目,都有不正确的变量值。这是在新项目中演示该问题的屏幕截图(请原谅我使用 ViewDidLoad() 作为 main(..)

swift - Xcode 调试器显示不正确的变量值-LMLPHP

这就是我所做的:删除 Xcode.app(版本 10.0)。从 App Store 下载 Xcode 10.1。创建一个新项目。输入此代码,然后运行。

同样的问题出现在 Xcode 9.4.1 和 Xcode 10.0 的现有项目中——与新安装 Xcode 10.1 的行为相同。

由于所有版本的 Xcode 都显示相同的问题,我假设这个问题不在 Xcode 可执行文件中,而是在某些缓存或其他临时文件中。我已经清理了我的项目,重新启动了 Xcode,重新启动等。没有帮助。

所以我的问题是:如何干净安装 Xcode?我可以删除哪些目录以进入工作状态?我是新手。我只有在 iOS 调试器或 OS X 上运行的测试项目,所以我很高兴重新编译我的所有项目。是否有 Xcode 使用的临时文件和目录的完整列表?

我是否必须删除 Xcode 曾经写入磁盘的所有内容?如果不存在其他解决方案,我对此持开放态度。

感谢您提供有关如何继续或如何收集更多信息的任何建议...

最佳答案

经过大量的猜测,我能够解决这个问题。

我同意@Martin R 的观点,这听起来不像是缓存问题,因为在下载新版本的 Xcode 后问题仍然存在。我猜想只有首选项和 UserData 会比新的可执行文件更长寿......

我查看了 UserData 目录,并找到了调试器的子目录:

~/Library/Developer/Xcode/UserData/Debugger/

在这个目录中有一个名为“CustomDataFormatters”的文件。我不知道文件是如何创建的,但这是它的内容:
<?xml version="1.0" encoding="UTF-8"?>
<CustomDataFormatters
   version = "1.0">
   <SummaryFormatters>
      <SummaryFormatter
         formatString = "FAIL"
         type = "Swift.String">
      </SummaryFormatter>
   </SummaryFormatters>
</CustomDataFormatters>

该文件似乎将每个字符串都设置为“FAIL”,这正是我看到的行为。额外的测试表明整数、浮点数和其他数据类型显示正确——只有 String 类型总是不正确。

删除此文件解决了我的问题。

如果有人能解释这个文件是如何创建的,我将不胜感激,但现在,我可以再次调试了!

在应用程序调试期间,我右键单击字符串变量以“复制”数据或“将值查看为...”。我在调试过程中是否按了一些键序列来创建这个文件?
我在尝试 CMD+B 或 CMD+R 时是否按了一些奇怪的键盘快捷键??

此外,我将此问题的标题更改为“Xcode 调试器显示所有字符串的“失败””以帮助将来的搜索。

关于swift - Xcode 调试器显示不正确的变量值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53119335/

10-11 00:55
查看更多