领域获取已保存记录的ID

时间:2018-12-09 23:19:58

标签: swift realm

我需要获取刚刚保存的记录ID,以将信息传递给segue。

如何返回获取保存的记录的ID?

型号:

class Month: Object {

    @objc dynamic public private(set) var id = ""
    @objc dynamic public private(set) var month = Date()
    @objc dynamic public private(set) var beg:Int = 0

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

写:

static func addMonthToRealm(month: Date, beg: Int) {

do {
     let realm = try Realm( )
     try realm.write {
     realm.add(month)
        try realm.commitWrite()
      }
    } catch {
       debugPrint("Error adding run to realm!")
    }
}

使用Swift 4.2和Realm 3.1

谢谢。

1 个答案:

答案 0 :(得分:1)

您的代码有几个问题。首先,您尝试将Date对象保存到Realm,而不是保存自定义Month对象。其次,切勿在{{1​​}}事务内调用commitWrite。仅当您使用write来启动commitWrite事务而不是使用beginWrite进行关闭时,才需要调用write

realm.write

您还需要修改static func addMonthToRealm(date: Date, beg: Int) -> String? { let month = Month() month.month = date month.beg = beg do { let realm = try Realm( ) try realm.write { realm.add(month) } return month.id } catch { debugPrint("Error adding run to realm!") return nil } } 对象定义以生成唯一的Month

id