在Realm Cocoa中,RLMObjects不被识别为相同

时间:2015-04-23 02:36:42

标签: ios swift realm

我有一个包含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?

1 个答案:

答案 0 :(得分:3)

RLMObject不符合Swift的Equatable协议,允许==!=比较。根据您对对象所需的相等语义,您可以在RLMObject上使用以下扩展名:

extension RLMObject: Equatable {}
func == <T: RLMObject>(lhs: T, rhs: T) -> Bool {
  return lhs.isEqualToObject(rhs)
}