Realm = RLMRealm'没有成员'setDefaultRealmPath'

问题描述 投票:5回答:3

我已将Realm.framework和RealSwift.framework添加到项目中。和“导入领域”虽然我收到此错误:

RLMRealm'没有成员'setDefaultRealmPath'

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

任何想法我似乎无法在任何地方找到解决方案,因为它是如此新颖。

提前致谢。

ios swift2 realm xcode7.2
3个回答
9
投票

Realm(Swift和Objective-C库)刚刚更新到0.97版本。虽然setDefaultRealmPath过去是一个有效的API,但随后被弃用,从0.97开始,完全删除了。因此,如果它在过去工作,一旦你更新到0.97,它现在​​将导致构建错误。

现在通过Realm RLMRealmConfiguration对象控制设置Realm的文件位置。要设置默认路径,您现在可以这样做:

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)

如果您需要进一步澄清,请告诉我们!


2
投票

更改默认Realm路径的新方法:

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)

0
投票

在Swift 4中你可以使用它

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
© www.soinside.com 2019 - 2024. All rights reserved.