我用的是 Xcode 6 Beta 4。我遇到了一个奇怪的情况,我不知道如何适当地测试可选项。
如果我有一个可选的 xyz,这是测试的正确方法:
if (xyz) // Do something
或者
if (xyz != nil) // Do something
文档说要用第一种方法,但是我发现有时候,第二种方法是必需的,不会产生编译器错误,但是有时候,第二种方法会产生编译器错误。
我的具体例子是使用 GData XML 解析器进行快速桥接:
let xml = GDataXMLDocument(
XMLString: responseBody,
options: 0,
error: &xmlError);
if (xmlError != nil)
在这里,如果我这样做:
if xmlError
它总是返回真值,但是,如果我这样做:
if (xmlError != nil)
然后它工作(就像它在 Objective-C 中的工作方式一样)。
GData XML 和它处理可选项的方式有什么我不知道的地方吗?