在应用程序初始加载时,捆绑的领域(Realm1)被复制到documents文件夹。现在,将捆绑的领域设置为默认领域,我可以更新bool属性,以便表视图可以显示已标记和未标记的单元格。但是,我正在寻找一种将第二个领域(Realm2)与更高版本的更新捆绑在一起的方法,该更新会将新数据添加到现有的默认领域,但又不覆盖当前的默认领域。如果有帮助,我目前正在使用Swift 5和Xcode 11.1。
到目前为止,我唯一想到的就是添加代码块以将新条目添加到默认领域。首先,视图将检查以查看该领域的计数,如果计数与原始捆绑相同,则它将添加新数据,如果计数等于初始捆绑加上新条目,则它将添加新数据。不会再次添加新数据。我一直希望有一个更简单的解决方案,我认为它更干净。
理想情况下,最终结果将是一种更新现有默认领域的方法,而不会覆盖已经编辑的内容。尽管我对使用领域还不是很陌生,但是如果能为我指出正确的解决方案,将不胜感激。谢谢。
一旦在磁盘上创建了默认的Realm,如果您想从捆绑的文件中读取数据,这是代码
let config = Realm.Configuration(
// Get the URL to the bundled file
fileURL: Bundle.main.url(forResource: "MyBundledData", withExtension: "realm"),
// Open the file in read-only mode as application bundles are not writeable
readOnly: true)
let realm = try! Realm(configuration: config)
读取数据后,您可以切换回去
var config = Realm.Configuration()
config.fileURL = config.fileURL!.deletingLastPathComponent().appendingPathComponent("\(some_realm_name).realm")
Realm.Configuration.defaultConfiguration = config
只要不覆盖,请确保您的对象使用唯一的主键,并且在写入对象时,不会覆盖任何内容,因为对象将添加唯一的主键而不是覆盖。
class MyClass: Object {
@objc dynamic var my_primary_id = NSUUID().uuidString