我得到了iOS應用程序。我需要存儲一些數據。我試圖做到這一點在txt文件是這樣的:保存txt文件中的數據
[toFile writeToFile:path atomically:YES encoding:NSUTF8StringEncoding error:NULL];
但是,當我dissmis視圖控制器,我在那裏保存數據,文件的內容爲空一次。爲什麼?
我得到了iOS應用程序。我需要存儲一些數據。我試圖做到這一點在txt文件是這樣的:保存txt文件中的數據
[toFile writeToFile:path atomically:YES encoding:NSUTF8StringEncoding error:NULL];
但是,當我dissmis視圖控制器,我在那裏保存數據,文件的內容爲空一次。爲什麼?
我敢打賭,你正試圖寫入你的應用程序包。你不能。你必須在NSDocumentsDirectory或[app sandbox]/Library中編寫。
傳遞一個NSError *
參數你writeToFile
當writeToFile
回報NO
(這意味着它失敗了),你可以打印出NSError
信息來幫助你找出什麼地方出了錯。
例如:
NSError * error = nil;
BOOL success;
success = [toFile writeToFile:path atomically:YES encoding:NSUTF8StringEncoding error:&error];
if (success == NO)
{
NSLog(@"error in writeToFile - %@", [error localizedDescription]);
}
確保您保存文件的文檔目錄中,而不是資源目錄,因爲你不能寫信給你的應用程序包。
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *filePath = [documentsDirectory stringByAppendingPathComponent:@"user.txt"];
還檢查了iOS Storage Guidelines(需要登錄):
- 只有文件和其他數據是用戶生成的,或者說不能,否則您的應用程序中重新創建,應存放在 /Documents目錄,並將自動備份由iCloud 。
我認爲有教程,可以幫助您瞭解如何使用目錄和文件的工作在iOS上:
我應該在哪裏放置我的.txt文件在項目中? – 2012-03-08 09:26:50
我更新了我的例子。如果你生成這樣的filePath它應該工作:) – dom 2012-03-08 09:28:18
是的。但我應該在哪裏第一次創建此文件?你的鏈接不起作用「這個網頁有一個重定向循環」 – 2012-03-08 09:34:39
的NSString *路徑= [[一個NSBundle mainBundle] pathForResource:@「user」ofType:@「txt」]; - 這是錯的嗎? – 2012-03-08 09:25:13
是的。你不能寫入你的應用程序包。 – 2012-03-08 09:27:03
說真的,爲什麼在地球上你低估了這個? – 2012-03-08 13:59:17