【发布时间】:2015-02-19 07:49:42
【问题描述】:
我有一个带有可选实例变量的 NSManagedObject 子类
@NSManaged var condition: NSNumber? // This refers to a optional boolean value in the data model
当条件变量存在并包含“真”时,我想做一些事情。
当然,我可以这样做:
if let cond = condition {
if cond.boolValue {
// do something
}
}
但是,我希望可以通过可选链接将同样的事情做得更紧凑一些。像这样的:
if condition?.boolValue {
// do something
}
但这会产生编译器错误:
可选类型'$T4??'不能用作布尔值;改为测试 '!= nil'
解决这个问题的最简洁的方法是这样的:
if condition != nil && condition!.boolValue {
// do something
}
真的没有办法通过可选链接访问布尔值,还是我在这里遗漏了什么?
【问题讨论】: