在Swift 3中,如何解决有关参数标签的错误与String类型的任何可用重载不匹配?
问题描述:
在夫特2,我可以从somefile.txt
如下面的代码加载数据没有问题:在Swift 3中,如何解决有关参数标签的错误与String类型的任何可用重载不匹配?
Argument labels '(contentsOfURL:)' do not match any available overloads
如何:
let fileManager = FileManager.default
let urls = fileManager.urls(for: .applicationSupportDirectory, in: .userDomainMask)
let appDataURL = urls.last.appendingPathComponent("appData")
let fileDestinationUrl = appDataURL!.appendingPathComponent("somefile.txt")
var dataString = ""
do {
dataString = try String(contentsOfURL: fileDestinationUrl) //<-- error here
print("dataString=\(dataString)")
} catch let error as NSError {
print("Failed reading data in appData Directory, Error: \(error.localizedDescription)")
}
然而,在夫特3,的XCode说给出在线路dataString = try String(contentsOfURL: fileDestinationUrl)
错误修复这个错误?什么是正确的方式来阅读Swift 3中的文本文件?
答
这种方法已经被更新为(在您的示例的上下文中):
dataString = try String(contentsOf: fileDestinationUrl)
在夫特3中,所有功能PARAMS现在有标签除非另外特别定义。这在实践中通常意味着方法名称的最后部分移动到第一个参数标签。
你也可以随时重新键入String('让XCode显示所有可能的初始值设定项,通常你应该能够找出使用哪一个:) – Keiwan
我发现自动完成的作品可能有20%的时间。 : - / – stuckj