首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为PFObject设置等式

为PFObject设置等式
EN

Stack Overflow用户
提问于 2015-08-24 14:46:43
回答 3查看 217关注 0票数 1

我在快速设置赤道时出错了

代码语言:javascript
复制
extension PFObject : Equatable {}

public func ==(lhs:PFObject,rhs:PFObject) -> Bool {

return lhs.objectId == rhs.objectId
}

在下面的错误下面,我正在得到

“PFObject”与“等价”协议的冗余一致性

这个错误有什么解决办法吗?

EN

回答 3

Stack Overflow用户

发布于 2015-09-08 21:07:19

Swift 2中的更改使每个NSObject都通过isEqual实现来符合Equatable,后者只是比较指针值(在这里读更多)。

可以使用以下扩展来覆盖isEqual的默认实现

代码语言:javascript
复制
extension PFObject {
  public override func isEqual(object: AnyObject?) -> Bool {
    if (object as? PFObject)?.objectId == self.objectId {
      return true
    } else {
      return super.isEqual(object)
    }
  }
}
票数 3
EN

Stack Overflow用户

发布于 2015-08-24 14:53:21

PFObject是从NSObject继承的,所以它已经符合Equatable了。

与其将Equatable添加到已经实现它的类中,不如将其子类并覆盖默认实现。

票数 0
EN

Stack Overflow用户

发布于 2018-08-11 20:49:59

下面是isEqual的一个示例实现,它也检查对象是否具有相同的Parse对象类型。

代码语言:javascript
复制
extension PFObject {
    open override func isEqual(_ object: Any?) -> Bool {
        if let parseObject = object as? PFObject {
            return parseObject.parseClassName == self.parseClassName && parseObject.objectId == self.objectId
        } else {
            return super.isEqual(object)
        }
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32185213

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档