在Swift 3中,如何解决有关参数标签的错误与String类型的任何可用重载不匹配?

在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中的文本文件?

+1

你也可以随时重新键入String('让XCode显示所有可能的初始值设定项,通常你应该能够找出使用哪一个:) – Keiwan

+0

我发现自动完成的作品可能有20%的时间。 : - / – stuckj

这种方法已经被更新为(在您的示例的上下文中):

dataString = try String(contentsOf: fileDestinationUrl) 

在夫特3中,所有功能PARAMS现在有标签除非另外特别定义。这在实践中通常意味着方法名称的最后部分移动到第一个参数标签。