2011-08-02 58 views
1

我試圖將一些數據寫入到iPhone的SDK文件....我使用的是for語句寫說明情況更好,我有一些代碼:停止截斷目標C的文件?

for(int i = 0;i < 11;i++){ 

NSString *myFile = [documentsDirectory stringByAppendingPathComponent:@"hello.txt"]; 
[i writeToFile: myFile atomically:NO encoding:NSUTF8StringEncoding error:NULL]; 
} 

現在我希望12345678910書面在文件中,但只有10寫在它意味着文件正在trncated每次我寫入文件..所以我的問題是我可以做什麼來寫1到10沒有把所有內容都放在字符串中,因爲我有很多數據..

感謝

+0

我很困惑你的代碼。變量i是一個Int,不能被告知寫入文件。每次調用writeToFile時,都會覆蓋該文件,這就是爲什麼最後只剩10個文件。 – Carter

回答

4

SDK文檔說,這大約-writeToFile:atomically:encoding:error此方法覆蓋路徑處的任何現有文件。

該方法用於將字符串轉儲到文件。你的目的,你可以建立一個字符串,或打開與[NSFileHandle fileHandleForWritingAtPath]文件:

NSString *myFile = [documentsDirectory stringByAppendingPathComponent:@"hello.txt"]; 
NSFileHandle *file = [NSFileHandle fileHandleForWritingAtPath:myFile]; 

for(int i = 0; i <= 10; i++) { 
    NSString *dataString = [NSString stringWithFormat:@"%i", i]; 

    [file writeData:[dataString dataUsingEncoding:NSUTF8StringEncoding]]; 
} 

[file closeFile]; 
+0

謝謝先生.. –

2

如果你想寫一系列整數到一個文件,我會去這樣的:

NSFileHandle *fileHandle = [NSFileHandle fileHandleForWritingAtPath:FILE_PATH]; 
for(int i=0; i<11; i++) 
{ 
    NSString *str = [NSString stringWithFormat:@"%d",i]; 

    [fileHandle writeData:[str dataUsingEncoding:NSUTF8StringEncoding]]; 
} 

[fileHandle closeFile];