问题描述
因此,我尝试更新Realm中Object类的List属性。对象的属性会更新,但是由于某种原因,当它到达领域时,更新永远不会发生。换句话说,我确认所做的更改是在进行更改(对象中的List更新)之后才对实际对象进行的,但是在添加到领域之后,又从该领域取回了对象,就好像什么都没有改变。这是代码:
do{
try! realm.write{
let course = realm.objects(Course.self).filter("id =='\(courseID!)'").first
course!.days = List<String>()
for day in daysSelected{
course?.days.append(day)
}
realm.add(course!,update: .modified)
}
}catch{
print(error)
}
此外,您应该知道,当我更新其他属性(如字符串)时,所做的更改就可以了。我在列表上做错了吗?在我的对象类中,列表声明为:
var days: List<String> = List<String>()
解决方法
必须声明在对象子类上定义的列表类型的属性 顺其自然,也不是动态的。
而不是将列表定义为:
var days: List<String> = List<String>()
将其定义为:
let days = List<String>()