为什么Xcode 6在dynamic链接编辑器库中保持自动填充为TRUE?

我还在学习Swift和iOS开发,但是我一直在讨论这个问题,尽pipe我试图挖掘杂草,但是我仍然有点困惑。

当我开始键入true Xcode 6build议自动完成TRUE 。 不是世界末日。 但是,有一次,我决定看看如果我使用TRUE会发生什么,结果给了我一个错误:

'DYLD_BOOL' is not convertible to 'Bool'

好的,所以TRUE不是Bool …我查看了定义DYLD_BOOL的文件(顺便说一下,它是一个结构体),并find了下面的代码:

struct DYLD_BOOL { init(_ value: UInt32) var value: UInt32 } var FALSE: DYLD_BOOL { get } var TRUE: DYLD_BOOL { get }

现在我彻底糊涂了; 我不明白这个代码在做什么。 有人可以澄清一下这里发生的事情吗? 什么是DYLD_BOOL,我什么时候可以使用它?

提前致谢。

1)你没有做错什么,我遇到了与自动完成相同的问题:当你尝试input'true'时,Xcode试图自动完成这个'真'而不是'真'。

我刚刚提交了这个错误,报告编号“18945902”

有时你需要通过在其他地方input“true”来解决这个问题,并复制/粘贴文本。 这是一个愚蠢的Xcode错误。

2)'DYLD'的东西是一些'DYnamic LoaDer'库,它定义了它自己的'Bool'types,值为'TRUE'和'FALSE'。 这通常是出于代码兼容性的原因,来自其他平台或库的代码。

你真的可以忘掉它,为布尔值使用'true'和'false',它应该在下一个XCode版本中修复,因为这是一个烦人的错误。

如果你真的想了解更多关于DYLD的信息,这里是DYLD的文档:-)

https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man1/dyld.1.html

我还发现,在大写“TRUE”之后键入一个空格会将其变成一个正常的“真实”。 对于任何使用Xcode的人来说都很烦人,我希望苹果在下次更新中修复这个问题。