問題が発生しました。のは、私は、このレルムのモデルを持っていると仮定しましょう:レルムオブジェクトが変更されました。そのオブジェクトの別のコピーも変更されました。なぜですか?
class Table: Object {
dynamic var id = 0
dynamic var x: Int = 0
dynamic var y: Int = 0
dynamic var width:Int = 0
dynamic var height: Int = 0
dynamic var text: String = ""
dynamic var color: String = ""
dynamic var type: String = ""
let food = List<Food>()
override static func primaryKey() -> String {
return "id"
}
}
class Food : Object {
dynamic var id: Int = 0
dynamic var name = ""
dynamic var ingredients: String = "" // bigger text field
dynamic var size: Int = 0 // none, small, medium, big size
dynamic var price: Float = 0.0
dynamic var category: Category?
let additionalIngredients = List<Ingredient>()
override static func primaryKey() -> String {
return "id"
}
}
のは、私は1つのテーブルを持っているので、同様に、そのテーブルの上に2回、同じ食べ物を追加しましょう:
try! realm.write(){
table.food.append(food) // A
table.food.append(food) // B
realm.add(table, update: true)
}
を私は食品AのためのadditionalIngredientsを変更した場合は、同じ食べ物Bでもその値が変わります。私がやっていることは、このトランザクションに変更します。
try! realm.write(){
table.food.first!.additionalIngredients.removeAll()
for ingredient in ingredientsToAdd{
table.food.first!.additionalIngredients.append(ingredient)
}
realm.add(table, update: true)
}
私が参照/インスタンスに関して何か間違ったことをやっていると思い、誰かが私にヒントを与えることができますか?
ありがとうございます!
food_Aとfood_Bが同じオブジェクトを参照しているために発生すると思います – cmashinho