仅添加当前不存在的对象到Realm数据库

时间:2015-12-14 20:07:30

标签: ios database swift nspredicate realm

我有一个主题Realm数据库:

import Foundation
import RealmSwift

class Subjects: Object {

dynamic var subject = "" 

override static func primaryKey() -> String? {
    return "subject"
  }

}

在数据库中,我有四个科目,比如计算101,英语,历史和地理。现在,我有一个可以容纳一系列主题的结构,如下所示:

struct mySubjects {

static var subjects:Array<String>  = [String]()

 }

用户可以在结构中添加主题,例如,计算101,英语,历史,地理和工程师会计。

我的问题是我只想添加数据库中尚未存在的一个主题,即&#34;工程师会计&#34;。我以为我可以简单地编写NSPredicate代码:

 for subject in mySubjects.subjects  {

    let myPredicate:NSPredicate = NSPredicate(format: "subject != '\(subject)'")
    results = realm.objects(Subjects).filter(myPredicate)

没有运气:(。有什么建议吗?

1 个答案:

答案 0 :(得分:2)

由于您已设置主键,因此可以使用objectForPrimaryKey(_:key:)功能。

如果realm.objectForPrimaryKey(Subject.self, "Subject Name")之类的结果为零,那么该主题在数据库中尚不存在。