2016-12-01 82 views
0

我只是试图为Swift 3安装最新版本的Realm(2.1.0),并且在此行中出现错误:let realm = RLMRealm(path:databasePath) - DataManager.swift:258:21:参数标签'(路径:)'不匹配任何可用的重载 参数声明如下: var databasePath:StringRLMRealm(路径:)参数标签'(路径:)'不匹配任何可用的重载

我知道swift 3需要第一个参数的标签,但是我已经到处寻找替换,并且找不到答案。

回答

0

+ [RLMRealm realmWithPath:]是一个API,它在几个月前被弃用并完全从Realm中删除。它被替换为+ [RLMRealm realmWithConfiguration:],其中您提供了一个RLMRealmConfiguration对象,其文件路径为其在fileURL属性中设置的目标文件。

let configuration = RLMRealmConfiguration.defaultConfiguration() 
configuration.fileURL = URL(path: databasePath) 
let realm = RLMRealm(configuration: configuration) 

在一个侧面说明,除非你有特殊原因在使用雨燕的境界Objective-C的版本,我强烈建议你使用the native Swift version of Realm代替。这应该会容易很多,并且在Swift 3中感觉更加自然。:)

+0

感谢TiM,我是新来的项目,并且在6个月前离开了一些开发者。我怀疑我有一些认真的家务要做,因为该项目有大量的Realm.h和其他东西仍在其中。 – MarkAMark

+0

感谢TiM,我对这个项目很陌生,并且在6个月前发现一些开发者离开的地方。我怀疑我有一些认真的家务要做,因为该项目有大量的Realm.h和其他东西仍在其中。也就是说,我找到了一个临时解决方法,这是因为RLMRealm(_ :)的参数正在寻找一个url而不是一个字符串。所以解决方法是:var databasePath:URL,然后让realm = RLMRealm(url:databasePath)。但是,如果遵循建议使用Realm的本地Swift版本,我想所有这些都会改变。 – MarkAMark

相关问题