如何比较 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 "-"
}
}
我的问题如何在这里比较空值..
您很可能希望将 value
与 NSNull
进行比较。
您可以按如下方式更新您的代码:
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)"
}
}
我正在根据传递给此方法的数据对象将下面的函数写入 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 "-"
}
}
我的问题如何在这里比较空值..
您很可能希望将 value
与 NSNull
进行比较。
您可以按如下方式更新您的代码:
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)"
}
}