2011-07-06 126 views
0

我在iPhone中使用以下代碼將字符串寫入存儲在我的i​​Phone項目資源文件夾中的文件中。當我嘗試讀取它的數據讀取成功,但是當我嘗試寫它不寫入文件,雖然其aloso不給我任何錯誤。字符串沒有寫入文件 - iPhone

這是我的代碼:

NSString *myString; //Assuume the string you want to write is this 
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,  NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths objectAtIndex:0]; 
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"myfile.txt"]; 
[myString writeToFile:path atomically:YES]; 

請任何人可以指導。

+0

有沒有人可以幫忙! – Shah

+0

您是否嘗試過使用'writeToFile:atomically:encoding:error:'方法?它返回一個錯誤。這可以提供幫助。 –

+0

您需要比24分鐘後回覆更有耐心!您是否嘗試過使用writeToFile:atomically:encoding:error來查看您收到的錯誤消息? –

回答

0

writeToFile:atomically:已在iOS 2.0中被depredecated。使用writeToFile:原子:編碼:錯誤:代替。您應該檢查字符串的內容,例如通過NSLog()函數。不適當的初始化可能導致失敗。

NSLog(@"%@", myString); 
[myString writeToFile:path atomically:YES encoding:NSUTF8StringEncoding error:NULL]; 
+0

是的,它有數據..以及..我試圖使用編碼和錯誤,它仍然沒有寫入文件... – Shah

+0

我剛剛用你的問題用writeToFile測試代碼:atomically:encoding :錯誤:。有用。你在磁盤上有空閒空間嗎?你正在尋找正確的目錄中的文件? –

+0

m done ... wid that Thankss – Shah

1
- (void) testStringReadWrite { 
    NSString *myString = @"abcd efgh"; 
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
    NSString *documentsDirectory = [paths objectAtIndex:0]; 
    NSString *path = [documentsDirectory stringByAppendingPathComponent:@"myfile.txt"]; 
    CFShow(path); 
    NSError *error = nil; 

    [myString writeToFile:path atomically:YES encoding:NSUTF8StringEncoding error:&error]; 
    if (error) { 
     NSLog(@"%@",error); 
    } 


    NSString *readString = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:&error]; 
    if (error) { 
     NSLog(@"%@", error); 
    } else { 
     CFShow(readString); 
    } 

} 
0

只是我的兩分錢,從OS X的到來,我習慣叫writeToURL(),而不是writeToFile()。原來,writeToFile()是適用於iOS的那個。