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

Add only objects that don't currently exist to Realm database

我有一个主题领域数据库:

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、英语、历史、地理和工程师会计。

我的问题是我只想添加数据库中不存在的一个主题,即 "Accountancy for Engineers"。我以为我可以像这样简单地编写一个 NSPredicate:

 for subject in mySubjects.subjects  {

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

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

因为您已经设置了主键,所以您可以使用 objectForPrimaryKey(_:key:) 函数。

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