gpt4 book ai didi

ios - 如何将 Realm 数据库传输到应用程序组

转载 作者:行者123 更新时间:2023-11-29 05:26:04 24 4
gpt4 key购买 nike

嘿,我有一个使用 Real 来保存数据的应用程序。我使用默认 Realm 文件目录来存储应用程序数据,但我想将文件目录移动到应用程序组以创建应用程序扩展。这是我更改文件路径的代码

var config = Realm.Configuration()
config.fileURL = FileManager.default.containerURL(forSecurityApplicationGroupIdentifier: "group.com.bundle.identifier")!.appendingPathComponent("default.realm")
Realm.Configuration.defaultConfiguration = config

代码完美地更改了文件路径,问题是当我更改路径时数据会被删除,因为先前路径中的数据没有被传输。

其他人也有类似的问题here ,但它非常过时并且不起作用

我尝试过这样的传输方法,但都失败了

 migrateData(){
let fileManager = FileManager.default

//Cache original realm path (documents directory)
let originalDefaultRealmPath = realm.configuration.fileURL?.absoluteString

//Generate new realm path based on app group
let appGroupURL: NSURL = fileManager.containerURL(forSecurityApplicationGroupIdentifier: "group.com.groupIndentifier")! as NSURL
let realmPath = appGroupURL.path!.appending("default.realm")

//Moves the realm to the new location if it hasn't been done previously
if (fileManager.fileExists(atPath: originalDefaultRealmPath!) && !fileManager.fileExists(atPath: realmPath)) {
do{
try fileManager.moveItem(atPath: originalDefaultRealmPath!, toPath: realmPath)
}
catch{
print("error")
}
}

let config = Realm.Configuration(fileURL: appGroupURL.absoluteURL)
//Set the realm path to the new directory
Realm.Configuration.defaultConfiguration = config
}

预先感谢您的帮助!我对 Swift 和一般编程还相当陌生,所以如果我一无所知,请原谅。

最佳答案

感谢@Jay的回答,我能够回答我自己的问题。如果其他人需要帮助,这就是我所做的:

let fileManager = FileManager.default

let originalPath = Realm.Configuration.defaultConfiguration.fileURL!

let appGroupURL = FileManager.default.containerURL(forSecurityApplicationGroupIdentifier: "group.com.bundle.identifier")!.appendingPathComponent("default.realm")
do{
try fileManager.replaceItemAt(appGroupURL, withItemAt: originalPath )
}
catch{
print("Error info: \(error)")
}

关于ios - 如何将 Realm 数据库传输到应用程序组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58160530/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com