私は2つのクラスを持っています。まず、以下のようになります。そのように見えますレルムの既存のリストに新しいオブジェクトを追加する
class Person: Object {
dynamic var owner: String?
var dogs: List<Dogs>()
}
及び第二のクラス:ViewController
で今
class Dogs: Object {
dynamic var name: String?
dynamic var age: String?
}
と私は空のList
でオブジェクトPerson
を作成し、レルムに保存「のviewDidLoad」で
func viewDidLoad(){
let person = Person()
person.name = "Tomas"
try! realm.write {
realm.add(Person.self)
}
}
それはうまく動作し、Person
を作成することができます。01でこのデータを読み取ろうとすると問題が発生します。 ViewDidLoad
でそれをやって:
var persons: Results<Person>?
func viewDidLoad(){
persons = try! realm.allObjects()
}
とボタンアクションでそれをやってList
に新しいDog
を追加しよう:
@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
に、どのように人[0]を更新できますか? 私はこのようなSWIFT 3.0