如何在子类中使用 Parse.com 布尔值

How to use Parse.com booleans in subclasses

我已经将 PFUser 子类化并添加了一个 属性 isManager

class User : PFUser, PFSubclassing {
 @NSManaged var isManager: Bool
 override class func load() {
  self.registerSubclass()
 }   
}

我试过了

user.isManager = false

但是得到运行时间错误

[Foo.User setIsManager:]: unrecognized selector sent to instance 0x145bf550

因为核心数据,我也尝试过使用 NSNumber

user.isManager = NSNumber(bool: false)

但是编译时报错

NSNumber is not convertible to bool

使用 NSNumber

设置布尔值
currentUser!.isManager = NSNumber(bool: true)

然后对 if 语句使用以下内容

if currentUser!.isManager.isEqualToNumber(NSNumber(bool: true))

然后在你的 class:

class User : PFUser, PFSubclassing {
 @NSManaged var isManager: NSNumber
 override class func load() {
  self.registerSubclass()
 }  
}

我实际上发现实施 "get" 和 "set" 更简单。

class User: PFUser, PFSubclassing {
    var isManager: Bool {
        get { return self["isManager"] as! Bool }
        set { self["isManager"] = newValue }
    }
    ...
}