如果Realm
中包含Object
Realm.add(_:update:)
且update
设置为true
,则其索引将包含在结果RealmCollectionChange
中,即使它的所有属性都没有改变。
就我而言,我正在解析JSON,然后将其转换为我的特定Object
。其中一些将被改变,一些不会,一些将是全新的。因此,当我realm.add(possiblyNewOrUpdatedObjects, update: true)
时,其值完全没有变化的对象包含在modifications
索引数组中。
我对这种行为缺少什么?为什么未修改的Object
被视为已修改?
答案 0 :(得分:2)
目前,这是公认的功能。如果您在Object
上设置了某个属性,即使它与之前的值相同,也会将其视为更改修改。
有an issue on the Realm Cocoa repo讨论此功能,是否应将其视为需要修复的错误。 Realm的问题优先级取决于有多少用户询问,所以请为此问题添加支持。 :)
答案 1 :(得分:0)
使用Realm.add(_:update:)
时,Realm
会尝试验证对象是否已受管理,并确保您添加的对象由同一Realm
管理。然后它会在填充所有属性之前尝试获取或创建行(获取或创建对象)。
基本上Realm
不知道您尝试更新的每个属性的值是多少。 Realm
只将它们视为新对象。