【发布时间】:2021-08-12 20:02:52
【问题描述】:
我正在尝试将我的数据保存在真实设备中,并使用了下面的领域管理器。我的问题非常有趣,我什至不知道在我的真实设备上保存数据有什么问题。 每个模拟器都能正常工作,我可以保存。但它不适用于真实设备。
其次,当我转到 fileURL 路径时找不到领域数据库文件,它是空的。 (文档文件)
(lldb) po Realm.Configuration.defaultConfiguration.fileURL
有人可以帮帮我吗?完整项目是here,如果您愿意,可以自己尝试。我真的很感激。
import Foundation
import RealmSwift
protocol RealmFactoryProtocol {
func makeRealm() throws -> Realm
}
final class RealmFactory: RealmFactoryProtocol {
private let fileManager: FileManagerProtocol
private let currentSchemaVersion: UInt64 = 1
private let appID = "com.karinyfreitas.SimpleMarket"
init(fileManager: FileManagerProtocol = FileManager.default) {
self.fileManager = fileManager
}
private var sharedRealmConfiguration: Realm.Configuration? {
guard let containerURL = fileManager.containerURL(forSecurityApplicationGroupIdentifier: appID) else {
return nil
}
let configurationURL = containerURL.appendingPathComponent("db.realm", isDirectory: true)
return Realm.Configuration(
fileURL: configurationURL,
schemaVersion: currentSchemaVersion,
migrationBlock: { _, _ in },
shouldCompactOnLaunch: { totalBytes, usedBytes in
// Realm compacting approach from https://realm.io/docs/swift/latest/#compacting-realms
let oneHundredMB = 100 * 1024 * 1024
return (totalBytes > oneHundredMB) && (Double(usedBytes) / Double(totalBytes)) < 0.5
}
)
}
func makeRealm() throws -> Realm {
guard let configuration = sharedRealmConfiguration else {
throw RealmFactoryError.unableToMakeConfiguration
}
return try Realm(configuration: configuration)
}
}
enum RealmFactoryError: Error {
case unableToMakeConfiguration
}
【问题讨论】: