我的应用因此被苹果拒绝:"在启动和内容下载时,您的应用在用户的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
。如果将配置对象设置为 defaultConfiguration
,Realm()
使用该配置作为默认值。
Realm.Configuration.defaultConfiguration = config
let realm = Realm()
另请参阅...https://realm.io/docs/swift/latest/#realm-configuration
我更新了岸川对 Swift 5 和 Realm 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()