3
我需要備份我的默認realm.io數據庫並從Dropbox恢復它。我正在使用Dropbox-iOS-SDK來上傳和下載它。當我嘗試用備份替換當前數據庫文件(例如default.realm)時,對象位於緩存中,我無法清除該緩存,因此無法創建數據庫的新實例。備份和恢復realm.io數據庫
我可以重新加載RLMRealm對象嗎?
下面是代碼:
func reloadDB(fromPath: String) {
let defaultParentPath = RLMRealm.defaultRealmPath().stringByDeletingLastPathComponent
let dbPath = defaultParentPath.stringByAppendingPathComponent("db.realm")
let dbLockPath = defaultParentPath.stringByAppendingPathComponent("db.realm.lock")
NSFileManager.defaultManager().removeItemAtPath(dbPath, error: nil)
NSFileManager.defaultManager().removeItemAtPath(dbLockPath, error: nil)
NSFileManager.defaultManager().copyItemAtPath(fromPath, toPath: dbPath, error: nil)
self.db = RLMRealm(path: dbPath, readOnly: false, error: nil)
NSFileManager.defaultManager().removeItemAtPath(fromPath, error: nil)
}
什麼是備份的最佳方式Realm.io數據庫?
我應該刪除以前的參考,然後替換文件並創建一個新的實例嗎?我應該如何刪除參考?只是設爲零? – Nicopuri 2015-03-31 20:15:23
它不工作。在替換** db.realm **之前,我設置了'self.db = nil'並且它不起作用 – Nicopuri 2015-03-31 20:27:03
請注意,您擁有的任何RLMObjects,RLMResults或RLMArrays也將持有對領域的強烈參考 – segiddins 2015-03-31 20:37:40