如何比较 AnyObject 是 <Null> 还是不是?

How to Compare AnyObject Is <Null> or not?

我正在根据传递给此方法的数据对象将下面的函数写入 return 值。

如果我们得到的数据为空,我会尝试 return“-”,否则如果我得到任何有效响应,我会 returning value..

private func checkDataForValue(data: Optional<AnyObject>) -> String {
    if let value = data {
        let value1: AnyObject = //have to check <Null>
        if value === value1 {
            return "-"
        }
        return "\(value)"
    } else {
        return "-"
    }
}

我的问题如何在这里比较空值..

您很可能希望将 valueNSNull 进行比较。

您可以按如下方式更新您的代码:

private func checkDataForValue(data: Any?) -> String {
    if let value = data {
        if value is NSNull != nil {
            return "-"
        } else if (value as? String)?.lowercased() == "<null>" {
            return "-"
        } else {
            return "\(value)"
        }
    } else {
        return "-"
    }
}

我会利用 switch case 的强大功能并选择:

private func checkDataForValue(data: Any?) -> String {
    switch data {
    case .none, .some(is NSNull):       return "-"
    case .some(let value as String):    return value == "<null>" ? "-" : value
    case .some(let value):              return "\(value)"
    }
}