使用createOrUpdate进行领域部分更新并不起作用

时间:2015-07-29 19:14:30

标签: ios objective-c swift realm

我正在尝试将Realm用于我的iOS应用。使用createOrUpate更新本地Realm DB时,它会使用默认值重写未提供的属性,而不是保持它们不变。我使用的领域是最新的,0.93。有人有同样的问题吗?

let realm = RLMRealm.defaultRealm()
realm.beginWriteTransaction()
for matchedUser in matchedUsers {
                    let newMatchedUser = MatchedUser()
                    newMatchedUser.objectId = matchedUser.objectId
                    newMatchedUser.username = matchedUser.username
                    newMatchedUser.email = matchedUser.email
                    newMatchedUser.fullname = matchedUser["fullname"] as! String
                    //they are other properties unprovided here.
MatchedUser.createOrUpdateInDefaultRealmWithValue(newMatchedUser)
                }
                realm.commitWriteTransaction()

1 个答案:

答案 0 :(得分:2)

所以,我弄清楚问题是什么。事实证明,您无法使用newMachtedUser更新数据库,因为它将首先初始化它,并且将为此初始化过程提供默认值。正确的方法是使用单个值进行更新,或为该更新创建字典/数组。