我正在尝试将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()
答案 0 :(得分:2)
所以,我弄清楚问题是什么。事实证明,您无法使用newMachtedUser更新数据库,因为它将首先初始化它,并且将为此初始化过程提供默认值。正确的方法是使用单个值进行更新,或为该更新创建字典/数组。