Ios 正在更新域中的对象,但Nil不起作用

Ios 正在更新域中的对象,但Nil不起作用,ios,swift,realm,Ios,Swift,Realm,我在域中更新对象时遇到问题。我有一个对象(UserData)和一个属性(imageUrl),该属性存储用户url图像 如果我从其他设备删除图像,并尝试从当前设备更新刷新用户信息,我将收到一个JSON,该字段与我预期的一样,值为nil。但在将其与域一起保存并再次恢复后,该字段的值是远程删除图像之前的值 保持该状态的代码是: func saveUserData(_ user:UserData){ do{ try realm.write(){ realm

我在域中更新对象时遇到问题。我有一个对象(UserData)和一个属性(imageUrl),该属性存储用户url图像

如果我从其他设备删除图像,并尝试从当前设备更新刷新用户信息,我将收到一个JSON,该字段与我预期的一样,值为
nil
。但在将其与域一起保存并再次恢复后,该字段的值是远程删除图像之前的值

保持该状态的代码是:

func saveUserData(_ user:UserData){
    do{
        try realm.write(){
            realm.create(UserData.self, value: user, update: true)
        }
    }catch{
    }
}
变量
user
是正确的,因此从JSON映射它时存在任何问题


我使用的是RxRealm,我观察到用户数据的变化,当一个字段的值改变为
nil

Hmm时,它可以很好地工作,澄清一下,当你这样做时,你的对象是否有一个有效的主键?如果不是,它可能只是在创建对象的新副本。是的,我的主键是一个名为
url
的动态字符串。指示主键的方法是:override static func primaryKey()->String?{返回“url”}嗯,好的。那就好了。您是否尝试过在领域浏览器中打开领域文件?这应该可以让您确认属性是否正确设置为
nil
。与此错误相关:嗯,澄清一下,执行此操作时您的对象是否具有有效的主键?如果不是,它可能只是在创建对象的新副本。是的,我的主键是一个名为
url
的动态字符串。指示主键的方法是:override static func primaryKey()->String?{返回“url”}嗯,好的。那就好了。您是否尝试过在领域浏览器中打开领域文件?这将允许您确认属性是否正确设置为
nil
。与此错误相关: