我开始学习Swift编程。到目前为止,我已经开发了我的第一个工作应用程序。虽然简单,但它非常有用。但随着Swift 4和XCode 9的推出,我面临着一些令人头疼的问题。现在我正在尝试编写一小段代码来将字符串写入文件,如下所示:
let fileName = "myFile.txt"
let path = NSURL(fileURLWithPath:
NSTemporaryDirectory()).appendingPathComponent(fileName)
var myText = "Some text to write to file"
do {
try myText.write(to: path!, atomically: true, encoding: UTF8)
} catch {
// Handle error
}
当我写myText.write时,XCode建议使用上面的语法,但在我选择它并填充占位符之后,XCode在调用中显示错误“额外参数'原子'。注意它是它建议的结构。直到现在我还没有找到任何解决方法。任何人都可以帮助我吗?
答案 0 :(得分:4)
该错误具有误导性。编码参数错误
try myText.write(to: path!, atomically: true, encoding: .utf8)
并且不要在Swift 3+中使用NSURL
,请使用原生URL
:
let url = URL(fileURLWithPath: ...
但我推荐这种方式
let fileName = "myFile.txt"
let url = URL(fileURLWithPath: NSTemporaryDirectory()).appendingPathComponent(fileName)
let myText = "Some text to write to file"
let data = Data(myText.utf8)
do {
try data.write(to: url, options: .atomic)
} catch {
print(error)
}