写入文件不起作用(Swift 4)

时间:2017-10-08 14:09:56

标签: swift file

我开始学习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在调用中显示错误“额外参数'原子'。注意它是它建议的结构。直到现在我还没有找到任何解决方法。任何人都可以帮助我吗?

1 个答案:

答案 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)
}