我有查詢Realm數據庫並列出其結果的UITableView視圖。該查詢包含各種過濾器和排序指令。如何在Swift中傳遞Realm結果?
當用戶選擇一個表項時,它們被帶到一個詳細視圖,允許他們向左或向右滑動來查看查詢中的前一個/下一個結果(按照它們出現在UITableView中的順序)。這個細節視圖是一個單獨的ViewController,我現在正在將結果傳遞給細節視圖控制器,以便它可以在它們之間來回移動。
這很好,直到引入刪除項目的能力。用戶可以刪除項目,我說用戶是因爲其他人可以刪除項目,並且刪除將傳播給所有用戶(通過互聯網)。現在,如果用戶已進入詳細信息視圖,並且某人遠程刪除了某個項目,則分配給詳細視圖的結果集現在不一致。即使表格視圖中的原始結果確實得到更新,它也不會更新。
我懷疑會發生這種情況,因爲該變量是由值而不是由引用。
當傳遞Realm對象時,推薦的做法是傳遞ID並再次執行查找,但涉及到結果時該怎麼辦?我應該把過濾/排序代碼放在一個UITableViewController和細節控制器都可以訪問的地方,以便它們都可以單獨提取結果嗎?或者,有沒有更好的辦法,我忽略了?