How to use Parse.com booleans in subclasses

I subclassed PFUser and added the isManager property

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

I tried

user.isManager = false

but get a runtime error

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

I also tried using NSNumber due to the underlying data

user.isManager = NSNumber(bool: false)

but get a compile time error

NSNumber is not convertible to bool
+4
source share
2 answers

I actually found it much easier to implement "get" and "set".

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

Install bool with NSNumber

currentUser!.isManager = NSNumber(bool: true)

Then use the following if statements if

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

And then in your class:

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

Source: https://habr.com/ru/post/1570912/


All Articles