【发布时间】:2021-05-06 03:58:39
【问题描述】:
我的应用 (ios) 使用领域数据库来保存数据。但是,一些用户反馈他们丢失了数据?他们说他们在遇到这个问题之前使用了该应用很长时间。
最后,我上周遇到了这个麻烦。我在缓存目录中创建了一个目录名称 RealmFolder。在此目录中配置文件领域。
我猜可能系统会自动清除缓存目录中的所有文件(尚未验证)。我尝试研究但仍然找不到解决方案,因为我无法重新出现此错误。现在我有了一个新文件夹,新领域 URL。
这是我的代码配置领域:
class LocalDAO {
static let shareInstance = LocalDAO()
var DBName : String = ""
private var realmUrl : URL{
get {
let cacheUrl = FileManager.default.urls(for: FileManager.SearchPathDirectory.cachesDirectory, in: FileManager.SearchPathDomainMask.userDomainMask)[0]
let url = cacheUrl.appendingPathComponent("RealmFolder").appendingPathComponent(self.DBName)
return url
}
}
var config = Realm.Configuration(
schemaVersion: SCHEMA_VERSION,
migrationBlock: { migration, oldSchemaVersion in
if (oldSchemaVersion < SCHEMA_VERSION) {
}
})
func createRealmDirection(){
let cacheUrl = FileManager.default.urls(for: FileManager.SearchPathDirectory.cachesDirectory, in: FileManager.SearchPathDomainMask.userDomainMask)[0]
let directionName = "RealmFolder"
let path = cacheUrl.appendingPathComponent(directionName)
if !FileManager.default.fileExists(atPath: path.path){
try? FileManager.default.createDirectory(atPath: path.path, withIntermediateDirectories: true, attributes: nil)
}
}
func setDefaultRealmForUser(userId: String) {
self.DBName = "DB_\(userId).realm"
config.fileURL = realmUrl
Realm.Configuration.defaultConfiguration = config
}
}
【问题讨论】:
-
stackoverflow.com/questions/54746421/… 如果需要,操作系统可以清除此文件夹。
-
谢谢,但我检查了我的磁盘空间,它是免费的 36Gb
-
为什么不使用(安全的)默认 Realm 存储位置?