Swift 2.0 - 无法写入文本文件 (OS X)

Swift 2.0 - Unable to Write to Text File (OS X)

我有一个要读写的文本文件。我已获得成功读取的代码,但无法再次写入文本文件。我想覆盖所有内容(而不是修改)。

    if let dir : NSString = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.AllDomainsMask, true).first {
        let path = dir.stringByAppendingPathComponent("airports.txt")

        var strTextToWrite:String = String()        
        strTextToWrite = "Test"

        do {
            try strTextToWrite.writeToFile(path, atomically: false, encoding: NSUTF8StringEncoding)
        }
        catch { print("Error") }

    }

上面的代码没有抛出错误(即 'Error' 这个词没有按照我的 catch 代码打印出来),但是文本文件保持未经编辑,保留代码之前的值运行.

文本文件包含在 X-Code 项目中,如下所示:

我真的很茫然,我不明白为什么代码不起作用。我已经确认它是 运行(通过在 do 语句前后打印 strTextToWrite 的值,并且肯定是 运行ning 通过 do 代码块,因为它没有被 catch 块捕获。我唯一能想到的是代码指向错误的文件(但文件名是正确的,你可以用上面的截图)。

我做错了什么?提前致谢。

您正在查看 2 个不同的文件:您写入的文件是 ~/Documents/airport.txt,而您在 Xcode 中看到(并检查)的文件位于您的项目文件夹中。要查看更新,您需要引用 Xcode 中的文件,而不是复制它。

  1. 在项目导航器中右键单击 airport.txt,然后单击删除 > 移至废纸篓
  2. 转到 ~/Documents/airport.csv 并将其拖到您的 Xcode 项目中。不要将其添加到任何目标并取消选择 "Copy Items if Necessary"

您现在已经为文件创建了 a link

修改包中的文件通常不是一个好主意。如果您需要一个地方来输出临时文件,请使用 ~/Application Support 下的应用程序子文件夹或系统的临时文件夹。