在 swift 中将 NSManagedObject 属性 从 num 转换为 Bool

Casting NSManagedObject property from num to Bool in swift

我知道这个问题已被问过很多次,但解决方案对我不起作用。我有以下 NSManaged 对象 class:

@NSManaged var cellColor: AnyObject
@NSManaged var des: String
@NSManaged var name: String
@NSManaged var switcher: NSNumber

并且在加载托管对象时尝试将此值作为布尔值分配给 var 时,出现错误。这是将值分配给 var 的示例:

func loadData(){
var appDel = UIApplication.sharedApplication().delegate as AppDelegate
var context = appDel.managedObjectContext!
var request = NSFetchRequest(entityName: "Row")
var result:NSArray = context.executeFetchRequest(request, error: nil)!
if result.count > 0 {
    for i in result{

        var name = i.name as String
        var des = i.des as String
        var color = i.cellColor as UIColor
        var switcher:Bool{
            get{

            return i.switcher == NSNumber(bool: true) 
            //the problem    happens here

但是,当我尝试以这种方式进行转换的简单示例时,效果很好。

如何解决??

我觉得是这样的:

for i in results {
    var name = i.name as String
    var des = i.des as String
    var color = i.cellColor as UIColor
    var switcher: Bool {
        return Bool(i.switcher)
    }
}

虽然没有测试。