我在快速设置赤道时出错了
extension PFObject : Equatable {}
public func ==(lhs:PFObject,rhs:PFObject) -> Bool {
return lhs.objectId == rhs.objectId
}在下面的错误下面,我正在得到
“PFObject”与“等价”协议的冗余一致性
这个错误有什么解决办法吗?
发布于 2015-09-08 21:07:19
Swift 2中的更改使每个NSObject都通过isEqual实现来符合Equatable,后者只是比较指针值(在这里读更多)。
可以使用以下扩展来覆盖isEqual的默认实现
extension PFObject {
public override func isEqual(object: AnyObject?) -> Bool {
if (object as? PFObject)?.objectId == self.objectId {
return true
} else {
return super.isEqual(object)
}
}
}发布于 2015-08-24 14:53:21
PFObject是从NSObject继承的,所以它已经符合Equatable了。
与其将Equatable添加到已经实现它的类中,不如将其子类并覆盖默认实现。
发布于 2018-08-11 20:49:59
下面是isEqual的一个示例实现,它也检查对象是否具有相同的Parse对象类型。
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)
}
}
}https://stackoverflow.com/questions/32185213
复制相似问题