Я столкнулся с проблемой в realm-cocoa 2.8.0 (в 2.7.0 она работает хорошо), когда я хочу сохранить объект в файл области, я увидел, что пустой объект со значением по умолчанию сохраняется в областивместо созданного мной объекта (даже первичный ключ отличается). Например:
class XXXRealmObject: RLMObject {
@objc dynamic var id: String = UUID().uuidString.lowercased()
@objc dynamic var name: String = ""
@objc init(name: String) {
self.name = name
super.init()
}
@objc override init() {
super.init()
}
override class func primaryKey() -> String {
return "id"
}
}
let obj = XXXRealmObject(name: "jojo")
let realm = try! RLMRealm(configuration: .default())
try? realm.transaction {
*breakpoint*
realm.addOrUpdate(object)
}
Я добавляю перед realm.addOrUpdate (object) и печатаю объект, он показывает правильный объект, но после realm.При выполнении addOrUpdate (object) в файле области я вижу только объект
{
id: 169e6bc2-9b34-44ae-8ac3-70e6b9145adc,
name: ""
}
, а идентификатор также отличается от того, что я видел в точке останова.Похоже, что Realm создает объект, а не использует объект, который я передал. Я прошу некоторую помощь здесь.
Итак, что заставит область создать пустой объект (может быть значение по умолчанию?), А не сохранить объект, который япрошло.Я просто хочу привести некоторые возможные причины здесь.