我有一個文本文件,我將讀取和寫入。我已經獲得了成功讀取的代碼,但無法再次寫入文本文件。我想覆蓋一切(不修改)。Swift 2.0 - 無法寫入文本文件(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") }
}
上面的代碼不會拋出一個錯誤(即所說的「錯誤」不打印按我的捕捉代碼),但文本文件仍然原封不動地保留了它的代碼是前值跑。
該文本文件包含了X-代碼項目中,如下圖所示:
我在一個真正的損失就在這裏,我不明白爲什麼代碼不能正常工作。我已確認它正在運行(通過在do
聲明之前和之後打印strTextToWrite
的值,並且它肯定貫穿do
代碼塊,因爲它沒有被catch
塊捕獲。我唯一可以想不到的是,該代碼是在錯誤的文件指向(但文件名是正確的,因爲你可以用上面的截圖確認)。
什麼我做錯了什麼?在此先感謝。
你確定你沒有看2個不同的文件嗎?右鍵單擊Xcode中的「airport.txt」,然後選擇* Show in Finder *查看它在哪裏。您的代碼寫入的文件位於'〜/ Documents/airport.txt' –
顯示讀取文件的代碼。 – MwcsMac
謝謝@CodeDifferent,我從網站上覆制了這段代碼,顯然它假設文件將在計算機的文件夾系統中。你能夠發佈一個答案,展示如何在應用程序本身的主包中引用該文件?我以前使用過代碼,但無法使引用正常工作。 –