Realm = RLMRealm' has no member 'setDefaultRealmPath'

南楼画角 提交于 2019-12-10 13:54:51

问题


I have added the Realm.framework and RealSwift.framework to a project. and "import Realm" though I'm getting this error:

RLMRealm' has no member 'setDefaultRealmPath'

 let directory: NSURL = NSFileManager.defaultManager().containerURLForSecurityApplicationGroupIdentifier("group.it.fancypixel.Done")!
        let realmPath = (directory.path! as NSString).stringByAppendingPathComponent("db.realm")
        RLMRealm.setDefaultRealmPath(realmPath)

Any ideas I can't seem to see a solution for this anywhere being it's so new.

Thanks in advance.


回答1:


Realm (Both the Swift and Objective-C libraries) was just updated to version 0.97. While setDefaultRealmPath was a valid API in the past, it was subsequently deprecated, and as of 0.97, completely removed. As such, if it was working in the past, once you've updated to 0.97, it will now result in a build error.

Setting the file location of a Realm is now controlled via Realm RLMRealmConfiguration objects. To set the default path, you would now do it like this:

let directory: NSURL = NSFileManager.defaultManager().containerURLForSecurityApplicationGroupIdentifier("group.it.fancypixel.Done")!
let realmPath = (directory.path! as NSString).stringByAppendingPathComponent("db.realm")

var config = RLMRealmConfiguration.defaultConfiguration()
config.path = realmPath
RLMRealmConfiguration.setDefaultConfiguration(config)

Let me know if you need any more clarification!




回答2:


The new way to change the default Realm path:

let directory: URL = FileManager.default.containerURL(forSecurityApplicationGroupIdentifier: "group.YOUR_BUNDLE_ID")!
    let realmPath = directory.path.appending("db.realm")
    let configuration = RLMRealmConfiguration.default()
    configuration.pathOnDisk = realmPath
    RLMRealmConfiguration.setDefault(configuration)



回答3:


In Swift 4 you can use this

let identifier = "group.companyName.projectName"
    var directory: URL = FileManager.default.containerURL(forSecurityApplicationGroupIdentifier: identifier)!


    directory.appendPathComponent("db.realm", isDirectory: true)

    let config = Realm.Configuration(
        fileURL: directory,
        schemaVersion: 1,
        migrationBlock: { migration, oldSchemaVersion in  })

    Realm.Configuration.defaultConfiguration = config


来源:https://stackoverflow.com/questions/34429566/realm-rlmrealm-has-no-member-setdefaultrealmpath

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!