领域:为领域文件设置 NSURLIsExcludedFromBackupKey
Realm: setting NSURLIsExcludedFromBackupKey for realm file
我想为我的领域文件设置 NSURLIsExcludedFromBackupKey。原因是因为我想将它从 iCloud 中排除。我有以下代码:
public class func configure() {
var config = Realm.Configuration()
config.fileURL = config.fileURL!.URLByDeletingLastPathComponent?
.URLByAppendingPathComponent("Test.realm")
do {
try config.fileURL?.setResourceValue(true, forKey: NSURLIsExcludedFromBackupKey)
}
catch {
print("Failed to set backupkey")
}
Realm.Configuration.defaultConfiguration = config
}
但是该函数始终无法设置密钥。我看不出任何问题,因为它很简单 do/catch。关于为什么这行不通的任何推理?
听起来您的 Realm 数据库文件尚未创建。我认为它是在您实例化 Realm()
之后或在您 write
到 Realm DB 之后创建的。文件存在后,您可以将其从备份中排除。
您编写的代码不起作用,因为您只能将 NSURLIsExcludedFromBackupKey
属性应用于已存在的文件,并且在首次打开 Realm 之前不会创建 Realm 文件。您可以通过几种不同的方式解决这个问题:
- 等到您打开 Realm 之后,再将属性应用于 Realm 的文件。请记住,除了主 Realm 文件之外还有一些辅助文件,您可能也想排除这些文件。
- 创建一个包含您的 Realm 的子目录,并将该属性应用于该目录,以便排除它及其内容。这可以在打开 Realm 之前完成,并且也会处理辅助文件。
- 将您的 Realm 存储在 Documents 目录以外的地方。如果 Realm 不包含用户数据,我认为如果您愿意不备份它就是这种情况,那么 Caches 目录可能更适合它。 Caches 目录的内容已从用户的备份中排除。
我想为我的领域文件设置 NSURLIsExcludedFromBackupKey。原因是因为我想将它从 iCloud 中排除。我有以下代码:
public class func configure() {
var config = Realm.Configuration()
config.fileURL = config.fileURL!.URLByDeletingLastPathComponent?
.URLByAppendingPathComponent("Test.realm")
do {
try config.fileURL?.setResourceValue(true, forKey: NSURLIsExcludedFromBackupKey)
}
catch {
print("Failed to set backupkey")
}
Realm.Configuration.defaultConfiguration = config
}
但是该函数始终无法设置密钥。我看不出任何问题,因为它很简单 do/catch。关于为什么这行不通的任何推理?
听起来您的 Realm 数据库文件尚未创建。我认为它是在您实例化 Realm()
之后或在您 write
到 Realm DB 之后创建的。文件存在后,您可以将其从备份中排除。
您编写的代码不起作用,因为您只能将 NSURLIsExcludedFromBackupKey
属性应用于已存在的文件,并且在首次打开 Realm 之前不会创建 Realm 文件。您可以通过几种不同的方式解决这个问题:
- 等到您打开 Realm 之后,再将属性应用于 Realm 的文件。请记住,除了主 Realm 文件之外还有一些辅助文件,您可能也想排除这些文件。
- 创建一个包含您的 Realm 的子目录,并将该属性应用于该目录,以便排除它及其内容。这可以在打开 Realm 之前完成,并且也会处理辅助文件。
- 将您的 Realm 存储在 Documents 目录以外的地方。如果 Realm 不包含用户数据,我认为如果您愿意不备份它就是这种情况,那么 Caches 目录可能更适合它。 Caches 目录的内容已从用户的备份中排除。