2011-03-22 75 views
0

我編寫了一個將txt文件加載到數組中的方法。然而,我對它並不滿意,因爲它對我的初學者來說看起來非常麻煩(我確信我不需要我的代碼的50%),我不知道如何指定我的txt的確切格式文件,例如NSUTF8StringEncoding。如何將txt文件加載到數組中

這裏是我的代碼:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths objectAtIndex:0]; // Get documents directory 

NSString *filePath = [documentsDirectory stringByAppendingPathComponent:@"Sample.txt"]; 

if (filePath) { // check if file exists - if so load it: 
    NSString *myText = [NSString stringWithContentsOfFile:filePath]; 
    if (myText) {textView.text=myText;} 
} 

有關如何擦亮這件事,並指定正確的格式任何建議,我會非常感激。

回答

-1

進入數組?你的意思是一個字符串,因爲正是你在做什麼......

但是,你的代碼看起來不錯,而且大部分只是抓住文檔目錄路徑,這不是你的錯,因爲它是根據許多知識庫,完全按照這種方式完成。

從編碼開始,stringWithContentsOfFile已過時,請使用stringWithContentsOfFile:encoding:error :(請參閱文檔) ,您將能夠指定正確的編碼並獲得準確的錯誤描述。

+0

@Nick韋弗:據我所知,文件目錄=資源目錄 – gd1 2011-03-22 22:29:12

+1

謝謝!將相應地更新代碼。 – 2011-03-23 08:34:17

+0

歡迎您,n.evermind – gd1 2011-03-24 20:31:37

1

嘗試以下,假設你的文件是你的包:

NSString * filePath = [[NSBundle mainBundle] pathForResource:@"Sample" ofType:@"txt"]; 

NSError * error = nil; 

NSString * contentsOfFile = [NSString stringWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:&error]; 
+1

獲取filePath的方法在此處有所不同。您的答案假定Sample.txt與應用程序捆綁在一起。但是,如果它從應用程序的早期實例保存到文件中,則應該使用問題中的原始方法。 – darvids0n 2011-03-22 22:28:55

+0

這是正確的,我假定文件在捆綁中。將糾正我的答案。 – 2011-03-22 22:31:18

+0

一旦你修復了這個錯誤,你應該用'stringWithContentsOfFile:encoding:error:'替換你的錯誤的方法調用。當您嘗試將使用的編碼寫入地址4(NSUTF8StringEncoding的值)時,您使用的方法將爲您提供ExcBadAccess。 – 2011-03-22 23:35:27

相關問題