Ich habe zwei Klassen. Zunächst sieht wie folgt aus:Hinzufügen eines neuen Objekts zu einer bestehenden Liste in Realm
class Person: Object {
dynamic var owner: String?
var dogs: List<Dogs>()
}
und zweite Klasse, die so aussieht:
class Dogs: Object {
dynamic var name: String?
dynamic var age: String?
}
und jetzt in ViewController
in 'viewDidLoad' erstelle ich Objekt Person
mit leeren List
und speichern Sie es in Realm
func viewDidLoad(){
let person = Person()
person.name = "Tomas"
try! realm.write {
realm.add(Person.self)
}
}
es funktioniert gut und ich kann erstellen Person
, Problem beginnt, wenn ich versuche, diese Daten in 01 zu lesenin ViewDidLoad
tut es:
var persons: Results<Person>?
func viewDidLoad(){
persons = try! realm.allObjects()
}
und versucht, neue in Schaltfläche Aktion hinzufügen Dog
zu List
tun:
@IBAction func addDog(){
let newDog = Dogs()
newDog.name = "Rex"
newDog.age = "2"
persons[0].dogs.append(newDog)
// in this place my application crashed
}
Hier ist mein App mit Informationen abstürzt: Can only add, remove, or create objects in a Realm in a write transaction - call beginWriteTransaction on an RLMRealm instance first.
Wie kann ich neue hinzufügen Dog
zu List
und wie kann ich Person [0] aktualisieren? Ich benutze SWIFT 3.0