2011-04-24 114 views
0

我無法確定文檔文件夾中是否存在文件。即使我沒有將任何數據保存到使用NSKeyedArchiver的文件中,我的測試也會返回true。 測試:iPhone - 保存和檢索數據

NSFileManager *fileManager = [NSFileManager defaultManager]; 
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths objectAtIndex:0]; 
NSString *documentPath = [documentsDirectory stringByAppendingPathComponent:@"gameData.dat"]; 

if ([fileManager fileExistsAtPath:documentPath]) { 
    //if the file exists retrieve the data. 
    //this is always called, even if there is no file at the documentPath. 
}else{ 
    //set the defaults and save data. 
} 
+0

一旦從模擬器清除documentPath .. – ajay 2011-04-24 17:06:37

回答

0

您確定那裏沒有文件嗎?當我只是在模擬器上的空應用程序中運行您的代碼段時,它不會找到文件存在。將一個空的gameData.dat文件放入我的Mac上的dir目錄並在模擬器上運行,現在找到一個文件(在模擬器上運行它,但是在那裏有一箇中斷點並查看完整路徑並轉到shell中的該目錄並嘗試一下)。

+0

感謝您的回覆。我發現當我初始化一個不同的類對象時,我實際上保存了數據。所以它保存了空文件,然後進行了測試。我解決了這個問題,現在它可以工作 – deludeddevelop 2011-04-24 18:25:37

0

此文件是否存在於應用程序的預覽迭代中?如果您使用此文件的早期時間在手機上加載了應用程序,如果您在加載新版本之前未刪除應用程序,它仍會找到該舊文件。

+0

謝謝你的迴應。在運行新版本之前,我確實刪除了該應用程序,因此確實刪除了該文件。實際上,我發現在測試之前我將數據保存在另一個類對象中,以查看是否有文件,因此它返回true。我解決了這個問題,現在它可以工作感謝您的幫助。 – deludeddevelop 2011-04-24 18:22:25