我有一个包含RLMObjects的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
}
如何在不必实现primaryKey分配的情况下比较两个RLMObject?
答案 0 :(得分:3)
RLMObject
不符合Swift的Equatable
协议,允许==
和!=
比较。根据您对对象所需的相等语义,您可以在RLMObject
上使用以下扩展名:
extension RLMObject: Equatable {}
func == <T: RLMObject>(lhs: T, rhs: T) -> Bool {
return lhs.isEqualToObject(rhs)
}