如何在子类中使用 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 }
}
...
}
我已经将 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 }
}
...
}