gpt4 book ai didi

ios - Realm:为数据库名称创建全局配置

转载 作者:搜寻专家 更新时间:2023-11-01 07:22:23 24 4
gpt4 key购买 nike

我有以下代码:

class AppDelegate: UIResponder, UIApplicationDelegate {

var window: UIWindow?

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
// Override point for customization after application launch.

var config = Realm.Configuration()

config.fileURL = config.fileURL!.URLByDeletingLastPathComponent?
.URLByAppendingPathComponent("HelloWorld.realm")

Realm.Configuration.defaultConfiguration = config

return true
}

我正在为 AppDelegate 中的 Realm 设置默认名称。但是,当我在我的 ViewController 中创建一个新的 Realm 对象时,这个名称/配置没有被加载:

    class LoadingScreenViewController: UIViewController {

let realm = try! Realm()

override func viewDidLoad() {
super.viewDidLoad()

//The config (HelloWorld.realm) is printed
print(Realm.Configuration.defaultConfiguration)

//The config (default.realm) is printed
print(self.realm.configuration)
}
}

可能是因为我的 ViewController Realm 是一个新对象,它有自己的状态。如果是这样,我应该做一个单例吗?如果我这样做,是否意味着我无法处理对数据库的异步写入。

最佳答案

你的配置没有问题,你可以改变你创建它的方式。

lazy var realm :Realm = {
var realm = try! Realm()
return realm
}()

override func viewDidLoad() {
super.viewDidLoad()
//The config (HelloWorld.realm) is printed
print(realm.configuration)
}

var realm :Realm!
override func viewDidLoad() {
super.viewDidLoad()
realm = try! Realm()
//The config (HelloWorld.realm) is printed
print(realm.configuration)
}

也许 let realm = try!带有成员 var 的 Realm() 会导致错误

希望对你有帮助:D

关于ios - Realm:为数据库名称创建全局配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38125715/

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