有没有办法重写NSManagedObject的Equatable?我有一个包含300k个对象的coredata数据集,我需要根据对象的业务id删除重复项。
// Coredata NSManagedObject
import Foundation
import CoreData
@objc(Business)
public class Business: NSManagedObject {
}覆盖错误消息:

发布于 2019-06-02 08:50:11
既然NSManagedObject已经符合Equatable,为什么还要费心再遵循它呢?:)只需覆盖==函数,就可以了!
extension Business {
static func == (lhs: Business, rhs: Business) -> Bool {
print("custom equation has been called")
return lhs.id == rhs.id
}
}你可以像这样测试它:
var b1 = Business()
var b2 = Business()
b1.id = "1"
b2.id = "2"
print("b1 == b2 ? \(b1 == b2)")输出的结果证明您的自定义==函数已被调用。
custom equation has been called
b1 == b2 ? false发布于 2019-06-02 08:47:19
NSManagedObject已经声明它同时符合Equatable和Hashable。不需要添加: Equatable。
您需要在Business类中直接覆盖关联的方法,而不使用扩展。
https://stackoverflow.com/questions/56411287
复制相似问题