Область - не может создать объект с существующим значением первичного ключа

У меня есть объект Человек со многими собаками. Приложение имеет отдельную страницу, где отображаются только собаки, и другую страницу, где отображаются собаки человека.

Моя модель выглядит следующим образом

class Person: Object {
    dynamic var id = 0
    let dogs= List<Dog>()

    override static func primaryKey() -> String? {
        return "id"
    }
}

class Dog: Object {
    dynamic var id = 0
    dynamic var name = ""

    override static func primaryKey() -> String? {
        return "id"
    }
}

У меня есть люди, хранящиеся в Царстве. У человека есть страница с подробностями, где мы приводим и показываем его собак. Если собака уже существует, я обновляю последнюю информацию об этой собаке и добавляю ее в список собак человека, в противном случае создаю новую собаку, сохраняю ее и добавляю в список людей. Это работает в coredata.

// Fetch and parse dogs
if let person = realm.objects(Person.self).filter("id =\(personID)").first {
    for (_, dict): (String, JSON) in response {
        // Create dog using the dict info,my custom init method
        if let dog = Dog(dict: dict) {
            try! realm.write {
                // save it to realm
                realm.create(Dog, value:dog, update: true)
                // append dog to person
                person.dogs.append(dog)
            }
        }
    }
    try! realm.write {
        // save person
        realm.create(Person.self, value: person, update: true)
    }
}

При попытке обновить человека с его собаками, царство бросает исключениеНе удается создать объект с существующим значением первичного ключа

Ответы на вопрос(1)

Ваш ответ на вопрос