【发布时间】:2016-07-20 20:01:23
【问题描述】:
我有两节课。首先看起来像这样:
class Person: Object {
dynamic var owner: String?
var dogs: List<Dogs>()
}
第二类看起来像这样:
class Dogs: Object {
dynamic var name: String?
dynamic var age: String?
}
现在在“viewDidLoad”中的ViewController 中,我使用空的List 创建对象Person 并将其保存在Realm 中
func viewDidLoad(){
let person = Person()
person.name = "Tomas"
try! realm.write {
realm.add(Person.self)
}
}
效果很好,我可以创建Person,当我尝试在ViewDidLoad 中读取SecondViewController 中的这些数据时,问题就开始了:
var persons: Results<Person>?
func viewDidLoad(){
persons = try! realm.allObjects()
}
并尝试在按钮操作中添加新的Dog 到List:
@IBAction func addDog(){
let newDog = Dogs()
newDog.name = "Rex"
newDog.age = "2"
persons[0].dogs.append(newDog)
// in this place my application crashed
}
这里我的应用程序崩溃并显示以下信息:Can only add, remove, or create objects in a Realm in a write transaction - call beginWriteTransaction on an RLMRealm instance first. 如何将新的 Dog 添加到 List 以及如何更新 person[0]?
我使用 SWIFT 3.0
【问题讨论】:
标签: ios swift realm realm-list