为什么Xcode 6会从动态链接编辑器库中将自动填充为true保持为TRUE?

时间:2014-10-20 23:12:52

标签: ios xcode swift

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

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

'DYLD_BOOL' is not convertible to 'Bool'

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

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

现在我彻底迷茫了;我不明白这段代码在做什么。有人可以对这里发生的事情有所了解吗?什么是DYLD_BOOL以及何时使用它?

提前致谢。

2 个答案:

答案 0 :(得分:7)

1)您没有做错任何问题,我在自动填充方面遇到了同样的问题:当您尝试键入' true'时,Xcode会尝试将其自动填充为' TRUE'而不是' true'。

我刚刚将此提交为错误,报告编号为' 18945902'

有时你需要输入' true'来解决这个问题。在其他地方,复制/粘贴文本。这是一个愚蠢的Xcode错误。

2)' DYLD'东西是一些' DYnamic LoaDer'图书馆,它定义了它自己的Bool'类型,值为' TRUE'并且'错误'。这通常是出于代码兼容性原因,来自其他平台或库的代码。

你真的可以忘记它,并使用' true'并且' false'对于布尔值,它应该在下一个XCode版本中修复,因为它是一个烦人的bug。

如果您真的想了解更多有关DYLD的信息,请参阅DYLD的文档: - )

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

答案 1 :(得分:1)

我还发现在首都'TRUE'之后键入一个空格会将其变为正常的'true'。使用Xcode的任何人都非常讨厌,我希望Apple在下次更新中修复此问题。