Есть несколько проблем с вашим кодом.Прежде всего, вы пытаетесь сохранить объект Date
в Realm
вместо сохранения пользовательского объекта Month
.Во-вторых, никогда не звоните 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
.
class Month: Object {
@objc dynamic public private(set) var id = UUID().uuidString
@objc dynamic public private(set) var month = Date()
@objc dynamic public private(set) var beg:Int = 0
override class func primaryKey() -> String {
return "id"
}
}