领域如何保存项目(如果不存在),否则应更新

时间:2018-12-10 09:34:03

标签: ios swift realm

我有一个来自网络服务的数据。我在项目中制作了相同的模型。为了演示该模型,让我对我的模型有所了解

模型1:

class Standard {
var Id = 0
var standardName = ""
var students : [StudentModel] = nil
}

Model2:

class StudentModel {
    var Id = 0
    var stdName = ""
    var Teacher: [TeacherModel] = nil
    }

Model3

class TeacherModel {
    var Id = 0
    var Name = ""
   }

现在我面临的是:

  

我已经在DB中拥有TeacherModel,但是Realm中没有学生模型和标准模型实例,因此应该将即将来临的学生和标准数据保存在Realm中。并在Realm中跳过或更新TeacherModel。但是现在它正在TeachModel数据上崩溃,因为一位教师已经将相同的内容保存在Realm.SO中,所以我期待一种更新方法,或者如果Realm中已经存在,则跳过保存Item。

注意:这些模型只是为了说明我的情况,据我所知,这里有很多错别字和其他东西。另外,我没有在模型上展示任何Realm的实现。它只是为了向您展示让您理解的事物。

1 个答案:

答案 0 :(得分:2)

好吧,您需要覆盖class func primaryKey() -> String?

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

然后使用realm.write(...)参数设置为realm.create(...)的{​​{1}}或update函数。