【问题标题】:How to use Parse.com booleans in subclasses如何在子类中使用 Parse.com 布尔值
【发布时间】:2015-01-12 18:42:27
【问题描述】:

我对 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

【问题讨论】:

  • 你有想过这个吗?
  • @mikekavouras 我已经添加了我最终使用的内容。希望对你有帮助

标签: swift parse-platform


【解决方案1】:

我实际上发现实现“get”和“set”要简单得多。

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

【讨论】:

  • 除了“无法识别的选择器”错误之外,我还收到错误“类型信息 TB、N、D 尚不支持”。值得一提,以帮助其他人找到此页面。
【解决方案2】:

使用 NSNumber 设置布尔值

currentUser!.isManager = NSNumber(bool: true)

然后使用下面的 if 语句

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

然后在你的课堂上:

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

【讨论】:

    猜你喜欢
    • 2013-02-15
    • 2015-05-08
    • 2012-06-06
    • 1970-01-01
    • 2010-12-17
    • 1970-01-01
    • 1970-01-01
    • 2012-02-17
    • 1970-01-01
    相关资源
    最近更新 更多