Ios 域如何保存项目如果不存在,否则它应该更新

Ios 域如何保存项目如果不存在,否则它应该更新,ios,swift,realm,Ios,Swift,Realm,我有一个来自webservice的数据。我在我的项目中制作了相同的模型。为了演示模型,让我展示一下我的模型 Model1: class Standard { var Id = 0 var standardName = "" var students : [StudentModel] = nil } class StudentModel { var Id = 0 var stdName = "" var Teacher: [TeacherModel] = nil

我有一个来自webservice的数据。我在我的项目中制作了相同的模型。为了演示模型,让我展示一下我的模型

Model1:

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

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

class TeacherModel {
    var Id = 0
    var Name = ""
   }
现在我面临的是:

我已经在数据库中有了TeacherModel,但是在这个领域我没有学生模型和标准模型实例,所以应该在领域中保存即将到来的学生和标准数据。并跳过或更新领域中的TeacherModel。但现在它正在破坏TeachModel数据,因为一名教师已经在领域中保存了相同的内容。因此,我期待着某种方法,在该方法中,它会更新或跳过保存项目(如果领域中已经存在)


注意:这些模型只是为了演示我的情况,据我所知,在我的案例中有许多拼写错误和其他问题。我也没有在我的模型上展示任何领域的实现。它只是向你展示让你明白的东西

您需要覆盖
类func primaryKey()->String?

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

然后使用
realm.write(…)
realm.create(…)
函数,并将
update
参数设置为
true

我已经设置了这个参数。我的意思是Id是我的主键。我告诉过你,这些模型只是虚拟的,只是为了向你展示序列我只是想在写作中,如果领域在保存中发现了任何对象,那么它必须更新它。那么你应该提供如何将模型保存到领域的代码。是的,领域能够更新对象,您只需通过
write
/
create
函数的
update:true
告诉他这样做即可