2014-02-05 48 views
1

我正在嘗試製作iPhone應用程序,適用於iOS 7. 我在我的項目中創建了一個txt文件,並且希望能夠從中編寫文本txt文件,當我按下寫入按鈕,寫入並且能夠讀取數據時,當我按下讀取按鈕時,讀取。如何在txt文件中寫入iOS 7

心中已經發現這個方法的工作,當我嘗試讀取數據:

- (IBAction)load:(id)sender { 
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"text" ofType:@"txt"]; 
if (filePath) { 
    NSString *stringFromFile = [NSString stringWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:nil]; 
    [TextView setText:stringFromFile]; 
} 

}

在另一個按鈕,我希望它的數據寫入到我的項目中的txt文件。 我已經嘗試了很多方法,但沒有真正起作用 - 它簡單不會在文件中寫入文本。 我發現了一種方法,它可以工作50%。這意味着它無法保存我要它寫入的文本,它只顯示它將文本放在文本框中。

代碼:

- (IBAction)write:(id)sender { 

    NSString *documentsDirectory = [NSHomeDirectory() 
            stringByAppendingPathComponent:@"Documents"]; 

    NSString *filePath = [documentsDirectory 
          stringByAppendingPathComponent:@"text"]; 


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

    NSString *printString = [NSString stringWithFormat:@"The new text"]; 

    [printString writeToFile:filePath atomically:NO encoding:NSUTF8StringEncoding error:nil]; 

    if (filePath) { 
     NSString *stringFromFile = [NSString stringWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:nil]; 
     [TextView setText:stringFromFile]; 
    } 
} 

任何一個可以請幫我嗎? 在此先感謝! :)

+0

爲什麼你試圖寫一個文本文件? – Mika

+2

捕獲writeToFile中的錯誤:而不是傳遞零! – Volker

回答

3

您可以使用以下功能:

-(void) writeToTextFile 
{ 
    NSArray *paths = NSSearchPathForDirectoriesInDomains 
     (NSDocumentDirectory, NSUserDomainMask, YES); 
    NSString *documentsDirectory = [paths objectAtIndex:0]; 

    NSString *fileName = [NSString stringWithFormat:@"%@/textfile.txt", 
                documentsDirectory]; 
    NSString *content = @"Your Desired Content"; 
    [content writeToFile:fileName 
        atomically:NO 
          encoding:NSStringEncodingConversionAllowLossy 
            error:nil]; 

} 
+1

請勿使用'stringWithFormat:'構建路徑。像問題中的OP一樣使用'stringByAppendingPathComponent'。 – rmaddy

+1

並捕獲錯誤...大多數此類調用確實允許傳遞NSError對象。 – Volker

+0

謝謝,這對我很有用! :) – user3276657