复制缓存目录中的领域文件



我的应用因此被苹果拒绝:"在启动和内容下载时,您的应用在用户的iCloud上存储了13.01 MB,这不符合iOS数据存储指南。

我知道出了什么问题。如何将我的 Realm 数据库保存在缓存目录而不是文档目录中?

您可以使用Realm.Configuration.fileURL来更改 Realm 文件路径。如下所示:

let cachesDirectoryPath = NSSearchPathForDirectoriesInDomains(.CachesDirectory, .UserDomainMask, true)[0]
let cachesDirectoryURL = NSURL(fileURLWithPath: cachesDirectoryPath)
let fileURL = cachesDirectoryURL.URLByAppendingPathComponent("Default.realm")
let config = Realm.Configuration(fileURL: fileURL)
let realm = try! Realm(configuration: config)

如果您不想指定每个实例化 Realm fileURL,可以使用 Realm.Configuration.defaultConfiguration 。如果将配置对象设置为 defaultConfigurationRealm()使用该配置作为默认值。

Realm.Configuration.defaultConfiguration = config
let realm = Realm()

另请参阅...https://realm.io/docs/swift/latest/#realm-configuration

我更新了岸川对 Swift 5Realm 10 的回答。我在AppDelegate的"didFinishLaunchingWithOptions"中称之为func:

private func setRealmDefaultConfig() {
    let cachesDirectoryPath = NSSearchPathForDirectoriesInDomains(.cachesDirectory, .userDomainMask, true)[0]
    let cachesDirectoryURL = NSURL(fileURLWithPath: cachesDirectoryPath)
    let fileURL = cachesDirectoryURL.appendingPathComponent("Default.realm")
    let config = Realm.Configuration(fileURL: fileURL)
    Realm.Configuration.defaultConfiguration = config
}

请记住,显然"DefaultConfiguration"仅在没有新配置的情况下实例化时才使用:Realm()

相关内容

  • 没有找到相关文章

最新更新