2010-02-23 35 views
2

有沒有一些非常明顯的原因,爲什麼這會產生一個零字符串而不是文件的實際文本內容?可可:從文件中獲取字符串的基本問題

NSString *fromFile = [NSString stringWithContentsOfFile: 
         @"file://localhost/Users/username/Desktop/test.txt"]; 

NSLog(@"%@", fromFile); 

PRINTS: "(null)" 

該文件是從TextWrangler以內容「abc」保存的純ASCII文本文件。

該路徑來自將實際文件從桌面拖入Xcode編輯器窗口。

我也試過沒有「file:// localhost」。

方法文檔說「如果文件無法打開,則返回nil」。沒有什麼不尋常的文件(沒有鎖定等)。它具有默認的Unix權限,並且由運行Xcode的用戶創建。

我知道這個方法已被棄用 - 試圖讓這個工作第一。

+0

哦GUH - 這是工作沒有文件://本地主機部分 - @「/用戶/用戶名/桌面/ testabc3。文本」。沒關係:| – user279520 2010-02-23 14:27:37

+0

我投票刪除這整個問題! – user279520 2010-02-23 14:28:08

+5

對不起,你必須像我們其他人一樣生活在公衆面前。其他人可能會遇到同樣的問題。 – TechZen 2010-02-23 15:13:33

回答

0

您試過~/Desktop/test.txt/Users/username/Desktop/test.txt

+0

好吧,我認爲我有3次。現在確實是/Users/username/Desktop/test.txt正在工作。但BTW〜/ Desktop/test.txt不起作用。 – user279520 2010-02-23 14:24:41

+1

你可能需要調用NSString的stringByExpandingTildeInPath方法來使第二個工作,對此抱歉。 – jessecurry 2010-02-23 15:08:45

4

您有stringWithContentsOfFile:stringWithContentsOfURL:混淆。

如果您傳遞的是URL @"file://localhost/Users/username/Desktop/test.txt" 你想要stringWithContentsOfURL:並使參數a NSURL例如 [NSURL URLWithString:@"file://localhost/Users/username/Desktop/test.txt"]

如果你想使用stringWithContentsOfFile:的參數應該是 @"/Users/username/Desktop/test.txt"

+0

奇怪的是,「file:// localhost/...」是Xcode在將文件拖入Xcode編輯器窗口時產生的內容。/Users/...路徑確實有效......謝謝。 – user279520 2010-02-23 14:26:17

+0

請注意,stringWithContentsOfURL似乎無法與「file:// localhost」一起使用 - 生成關於不同的Objective-C類型(??)的警告。 – user279520 2010-02-23 14:37:56

+0

啊誤讀文檔 - 參數是一個NSURL - 爲此編輯 - 但總是測試代碼;( – Mark 2010-02-23 14:52:09

相關問題