【问题标题】:Realm: create global configuration for database name领域:为数据库名称创建全局配置
【发布时间】:2016-06-30 14:12:23
【问题描述】:

我有以下代码:

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 中设置领域的默认名称。但是,当我在 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 领域是一个拥有自己状态的新对象。如果是这样的话,我应该做一个单身人士吗?如果我这样做,那是否意味着我无法处理对数据库的异步写入。

【问题讨论】:

    标签: ios xcode swift realm


    【解决方案1】:

    您的配置没有问题,您可以更改创建方式。

    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! Realm() 带有成员 var 会导致错误

    希望对你有所帮助:D

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多