【问题标题】:Add only objects that don't currently exist to Realm database仅将当前不存在的对象添加到 Realm 数据库
【发布时间】:2015-12-14 20:07:29
【问题描述】:

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

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

我的问题是我只想添加数据库中尚不存在的一个主题,即“工程师会计”。我想我可以像这样简单地编写一个 NSPredicate:

 for subject in mySubjects.subjects  {

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

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

【问题讨论】:

  • 所以,澄清一下,您在 Realm 数据库中有 Subjects,但您也有一个可以保存 Subjects 数组的结构......?
  • 是的。我使用结构来保存信息,直到用户决定将信息保存到数据库中。

标签: ios database swift nspredicate realm


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-04
    • 1970-01-01
    • 2010-10-09
    • 1970-01-01
    相关资源
    最近更新 更多