所以我使用领域来缓存并保留我们网络平台的所有数据。通过API加载。
当您以用户身份获取自己时,我们也会返回一个用户角色,具体取决于您是一个简单的成员,管理员还是其他任何人。
所以它基本上是
user: {
"username" : "user",
"role" : {"id":1,"name":"admin"}
}
这很酷,因为realm将它存储在我们的对象中,这些对象具有子实体对象的作用。
然而,当我们加载内容时,f / e评论。该对象不包含角色,但它可以包含当前登录的用户。数据被持久化,因此角色将丢失,因为它没有提供。
我们有什么聪明的方法可以解决这个问题吗?或者唯一的选择是在加载评论时向用户发送角色信息。
答案 0 :(得分:0)
如果将用户上的username
定义为主键,则可以在从API检索注释时使用createOrUpdate
/ create(…, update: true)
来保留用户的角色并将其与现有的缓存实例。
let realm = Realm()
let jsonDict = [
"message": "Hello world",
"user": [ "username" : "user" ]
]
realm.create(type: Comment.self, value: jsonDict, update: true)
请注意,只有在检索到的JSON中缺少角色时,此方法才有效。如果它位于"role": null
,则字典将包含NSNull
,这将导致Realm使用户的链接无效。