私はたくさんの犬を飼っている対象者を持っています。アプリには、犬だけを表示する別のページと、人の犬を表示する別のページがあります
私のモデルは次のとおりです
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"
}
}
Realm に人を保管しています。Person には、彼の犬をフェッチして表示する詳細ページがあります。犬がすでに存在する場合は、その犬の最新情報を更新して人の犬リストに追加します。そうでない場合は、新しい犬を作成して保存し、人のリストに追加します。これはコアデータで機能します。
// 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)
}
}
彼の犬で人を更新しようとすると、レルムは例外をスロー します既存の主キー値を持つオブジェクトを作成できません