RLMObjects 在 Realm Cocoa 中未被识别为相同对象
RLMObjects not recognised as the same in Realm Cocoa
我有一个包含 RLMObject 的 tableView,我想搜索包含特定 RLMObject 的行。
将 RLMResult 对象转换为其原始类型后,它与其原始对象不同:
// ... adding a todoA with !isCompleted to defaultRealm()
var firstItem = Todo.objectsWhere("isCompleted == false")[0] as! ToDo
if firstItem == todoA {
// todoA is != firstItem even-though they should be the same object
}
如何比较两个 RLMObject 而不必实现 primaryKey 分配?
RLMObject
不符合 Swift 的 Equatable
协议,允许 ==
和 !=
比较。根据您想要的对象的相等语义,您可以在 RLMObject
上使用以下扩展:
extension RLMObject: Equatable {}
func == <T: RLMObject>(lhs: T, rhs: T) -> Bool {
return lhs.isEqualToObject(rhs)
}
我有一个包含 RLMObject 的 tableView,我想搜索包含特定 RLMObject 的行。 将 RLMResult 对象转换为其原始类型后,它与其原始对象不同:
// ... adding a todoA with !isCompleted to defaultRealm()
var firstItem = Todo.objectsWhere("isCompleted == false")[0] as! ToDo
if firstItem == todoA {
// todoA is != firstItem even-though they should be the same object
}
如何比较两个 RLMObject 而不必实现 primaryKey 分配?
RLMObject
不符合 Swift 的 Equatable
协议,允许 ==
和 !=
比较。根据您想要的对象的相等语义,您可以在 RLMObject
上使用以下扩展:
extension RLMObject: Equatable {}
func == <T: RLMObject>(lhs: T, rhs: T) -> Bool {
return lhs.isEqualToObject(rhs)
}