【发布时间】:2014-09-25 16:33:36
【问题描述】:
我正在使用 Xcode 6 Beta 4。我遇到了一种奇怪的情况,我无法弄清楚如何适当地测试可选项。
如果我有一个可选的 xyz,是正确的测试方法:
if (xyz) // Do something
或
if (xyz != nil) // Do something
文档说是第一种方式,但我发现有时需要第二种方式,不会产生编译器错误,但其他时候,第二种方式会产生编译器错误。
我的具体示例是使用桥接到 swift 的 GData XML 解析器:
let xml = GDataXMLDocument(
XMLString: responseBody,
options: 0,
error: &xmlError);
if (xmlError != nil)
在这里,如果我刚刚这样做:
if xmlError
它总是会返回 true。但是,如果我这样做:
if (xmlError != nil)
然后它就可以工作了(就像它在 Objective-C 中的工作方式一样)。
GData XML 以及它处理我缺少的选项的方式有什么问题吗?
【问题讨论】:
-
能否为您的意外情况和错误情况提供完整示例,好吗? (而且我知道这很难,但试着开始去掉条件句周围的括号!)
-
这在 Xcode 6 beta 5 中有所改变
-
我刚刚用意外案例更新了问题。
-
我还没有更新到 beta 5。我很快就会这样做;很高兴见到 ??在 Swift 中,以及更一致的可选行为。