我们如何测试Swift中的nils?

时间:2015-10-04 05:53:54

标签: ios swift null xcode7

我们如何正确测试nils?

Xcode 7.01抛出了我们之前没有的新错误。

我们收到此错误:

  

“二元运算符'!='不能应用于类型的操作数   '[NSObject:Anyobject]'和'NilLiteralConvertible'“

..来自此代码:

// send request data to phone and handle reply or error
var didOpenParent : Bool = WKInterfaceController.openParentApplication(requestData, reply: { (reply, error) -> Void in

            // if we get a response, handle it appropriately
            if error == nil && reply != nil 
            {
                // code continues

Apple's documentation给出了使用“!=”测试nils的示例。尝试一些答案建议here,例如检查reply.isEqual(nil)或reply.isEmpty是否对我们不起作用。

我们缺少什么?

2 个答案:

答案 0 :(得分:2)

reply此处的类型为[NSObject : AnyObject],这是非可选 dictionary类型。你不需要 - 而且,正如你所发现的那样,不能 - 检查它是否为零。

答案 1 :(得分:0)

您无法检查非可选字典是否为nil,但您可以通过调用isEmpty确认应用程序是否发送了回复词典

if error == nil && !reply.isEmpty