This question already has an answer here:
String(contentsOfURL:) in Swift 3
(1个答案)
4年前关闭。
在Swift 2中,我可以像下面的代码一样从
但是,在Swift 3中,XCode在
如何解决这个错误?在Swift 3中阅读文本文件的正确方法是什么?
在Swift 3中,除非另有明确定义,否则所有函数参数现在都具有标签。实际上,这通常意味着方法名称的最后一部分移至第一个params标签。
(1个答案)
4年前关闭。
在Swift 2中,我可以像下面的代码一样从
somefile.txt
加载数据,而不会出现问题: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)")
}
但是,在Swift 3中,XCode在
dataString = try String(contentsOfURL: fileDestinationUrl)
行中通过以下方式给出了错误:Argument labels '(contentsOfURL:)' do not match any available overloads
如何解决这个错误?在Swift 3中阅读文本文件的正确方法是什么?
最佳答案
此方法已更新为(在您的示例上下文中):
dataString = try String(contentsOf: fileDestinationUrl)
在Swift 3中,除非另有明确定义,否则所有函数参数现在都具有标签。实际上,这通常意味着方法名称的最后一部分移至第一个params标签。
关于swift - 在Swift 3中,如何解决关于参数标签的错误不匹配String类型的任何可用重载?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39818151/