2015-07-28 144 views
0

因此,我使用領域緩存並保留來自我們Web平臺的所有數據。它通過API加載。realm.io保留子對象

當您以用戶身份獲取自己的信息時,我們也會返回用戶角色,具體取決於您是簡單成員,管理員還是其他人。

所以它會基本上是

user: { 
    "username" : "user", 
    "role" : {"id":1,"name":"admin"} 
} 

這是很酷的,因爲它有一個孩子realmobject作用境界店這只是我們的目標罰款。

但是,當我們加載內容,f/e評論。該對象不包含角色,但它可以包含當前登錄的用戶。數據正在保存,因此該角色將因缺少提供而丟失。

有沒有什麼聰明的方法可以解決這個問題?或者唯一的選擇是在加載註釋時向用戶發送角色信息。

回答

0

如果用戶username被定義爲一個主鍵,你可以使用createOrUpdate/create(…, update: true)檢索來自API的意見時,保留用戶的角色,並與現有的緩存實例合併。

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使來自用戶的鏈接無效。

+0

我想嘗試這聽起來不錯。 –

+0

現在我明白了,太糟糕了,我的json必須先被GSON解析,(在Java中)swift中我手動執行,因爲API返回蛇情況(下劃線),並且應用程序使用camelCase。 有沒有其他選擇,當你有對象?我想不是嗎? –

+0

您可以嘗試Realm + JSON,這有助於您在模型中定義映射。 https://github.com/matthewcheok/Realm-JSON – marius