我已将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)
任何想法我似乎无法在任何地方找到解决方案,因为它是如此新颖。
提前致谢。
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)
如果您需要进一步澄清,请告诉我们!
更改默认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)
在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