我有一个非常通用的函数需要返回AnyObject
:
func backgroundFunction(dm : DataManager) -> AnyObject {
...
}
但是在某些情况下我想要返回空/空值
我想到了这两个值:
nil
但似乎不允许:类型'AnyObject'不符合协议'NilLiteralConvertible'
0
但是当我用value != 0
测试AnyObject值是否为0时,我得到了这个错误:二元运算符'!='不能应用于'AnyObject'和'nil'类型的操作数
有没有解决方案?
答案 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
}