Swift:如何将AnyObject设置为nil或等效

时间:2015-06-05 18:40:22

标签: swift

我有一个非常通用的函数需要返回AnyObject

func backgroundFunction(dm : DataManager) -> AnyObject {
    ...
}

但是在某些情况下我想要返回空/空值

我想到了这两个值:

  • nil

但似乎不允许:类型'AnyObject'不符合协议'NilLiteralConvertible'

  • 0

但是当我用value != 0测试AnyObject值是否为0时,我得到了这个错误:二元运算符'!='不能应用于'AnyObject'和'nil'类型的操作数

有没有解决方案?

2 个答案:

答案 0 :(得分:12)

只有可选值可以设置为nil或检查为nil。所以你必须使你的返回类型成为可选项。

func backgroundFunction(dm : DataManager) -> AnyObject? {
    ...
    return nil
}

答案 1 :(得分:1)

我通过返回一个可选的AnyObject找到了解决方案:

func backgroundFunction(dm : DataManager) -> AnyObject? {

     if IHaveAValueToReturn {
         return TheValueToReturn
     }

     return nil
     // in case of optional AnyObject, you are allowed to return nil

}
相关问题