0
我正在使用Realm作爲數據庫的應用程序。用戶可以隨時註銷,並刪除領域內的所有對象。解析對象時刪除Realm數據庫
但是,由於我的應用程序使用網絡,我可能正在同時解析對象的過程中,我崩潰了。
*** Terminating app due to uncaught exception 'RLMException', reason: 'Object has been deleted or invalidated.'
這裏是我的註銷功能:
- (void)logout {
RLMRealm *realm = [RLMRealm defaultRealm];
[realm beginWriteTransaction];
[realm deleteAllObjects];
[realm commitWriteTransaction];
[self showLoginScreen];
}
什麼是正確的操作方法是什麼?我想刪除我在註銷時存儲的所有數據。
我還沒有使用過Realm,但只是想到了我的頭頂,可以刪除後臺線程中的所有對象,並在解析代碼和對象刪除代碼周圍放置'@ synchronized'塊(同步當然是同一個互斥體)。或者,您可能能夠複製從Realm獲得的對象,以便不解析「活動」副本,儘管我不知道Realm是否支持這一點。最後,你可以嘗試只檢查每個對象是否被刪除,儘管這聽起來有點駭人聽聞。 –