У меня два класса. Сначала выглядит так:
class Person: Object {
dynamic var owner: String?
var dogs: List<Dogs>()
}
и второй класс, который выглядит так:
class Dogs: Object {
dynamic var name: String?
dynamic var age: String?
}
и теперь в ViewController
в 'viewDidLoad' я создаю объект Person
с пустым List
и сохраняю его в Realm
func viewDidLoad(){
let person = Person()
person.name = "Tomas"
try! realm.write {
realm.add(Person.self)
}
}
он отлично работает, и я могу создать Person
, проблема начинается, когда я пытаюсь прочитать эти данные в SecondViewController
в ViewDidLoad
, делая это:
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
и как я могу обновить человека[0]? Я использую СВИФТ 3.0