經過淘汰the documentation後,我最近得知共享領域(全局可用於我的應用程序的所有用戶)只能用Realm.asyncOpen
查詢。例如,我有一個/shared
領域,它對任何用戶都具有隻讀權限。我試圖以通常的方式查詢它,但它返回了零個對象。但是,如果我查詢它這個樣子,它的工作原理:對象如何在Swift中的共享領域中同步
Realm.asyncOpen(configuration: sharedConfig) { realm, error in
if let realm = realm {
// Realm successfully opened
self.announcements = realm.objects(Announcement.self)
print(self.announcements)
self.tableView.reloadData()
} else if let error = error {
print(error)
}
}
這種方法明顯比通常的境界查詢速度較慢,因爲它似乎是從服務器,而不是本地,已同步境界獲取數據。
這是否意味着拉下來的對象永遠不會存儲在本地的副本中,而是每次訪問時都從ROS中查詢?
換句話說,共享領域拉和未同步?
很好的答案,謝謝。那麼,我可以通過將領域全局寫入來解決整個問題嗎?我並不擔心這個問題的安全性,因爲我的應用程序不會提供任何寫入領域的機制。 –
是的,如果Realm是全局可寫的,你就不會有這個問題,但我想認爲我所概述的解決方案不會犧牲訪問控制模型那麼麻煩,但那是你的呼叫。 – jpsim
嗯......你是說你在用'asyncOpen'初始化'/ shared'領域後,我仍然可以用'NotificationToken'來監聽更改,並像任何普通領域一樣進行交互?我只需要'asyncOpen'來獲取模式更改? –