这是我的班级:
class realmTickets: Object {
dynamic var TicketPrices = 0
}
class realmXP: Object {
dynamic var XP = 0
}
class dataReference: Object {
var dataRefVersion = 0.0
var xpTable = List<realmXP>()
var ticketPricesTable = List<realmTickets>()
}
如何更新dataRefVersion?
我试过了:
currentDataReference.dataRefVersion = newestDataRef
try! self.realm.write {
self.realm.add(currentDataReference, update: true)
currentDataReference.dataRefVersion = newestDataRef
}
newestDataRef为1.0
这就是currentDataReference的制作方式:
let dataRef = self.realm.objects(dataReference)
currentDataReference = dataRef.first!
realm.objects中只有一个对象。
重新加载对象时,它始终设置为0.0
答案 0 :(得分:2)
必须使用dynamic
修饰符声明内置类型(字符串,整数等)的属性,以使Realm Swift能够提供从底层Realm文件中检索值的getter。如果没有dynamic
修饰符,Swift编译器将生成对底层实例变量的访问,该变量不包含从Realm文件加载的对象的任何数据。
此外,您的两个List<T>
属性应该真正用let
声明。有关说明,请参阅Why does Realm suggest that List<T> properties be declared using "let"?。