ios – 避免将重复对象添加到领域

前端之家收集整理的这篇文章主要介绍了ios – 避免将重复对象添加到领域前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
查询Parse.com中的数据并将其保存在本地的Realm数据库(iOS / swift)中.每个对象都有一个唯一的属性(A),但也有一个可能是一样的属性(B).避免将具有相同属性B的对象添加到领域数据库中最有效的方法是什么?
提前致谢.

解决方法

您可以在对象上设置主键,以便Realm保证DB中只有一个对象.
class Person: RLMObject {
    dynamic var id = 0
    dynamic var name = ""

    override class func primaryKey() -> String {
        return "id"
    }
}

您仍然需要自己检查该对象是否已在DB中.它将基于主键(通过属性(A)或属性(B)查找对象)来获取对象.那么如果对象存在,不要添加,如果不存在,将其添加到DB.

这样的东西

var personThatExists = Person.objectsWhere("id == %@",primaryKeyValueHere).firstObject()

  if personThatExists { 
    //don't add 
  } else { 
    //add our object to the DB 
  }

如果使用主键,并且不关心正在更新的对象的值,则可以使用createOrUpdate方法.如果不存在,领域将创建一个新的对象,否则它将使用传入的对象更新存在的对象.

希望这可以帮助

猜你在找的iOS相关文章