2011-04-24 81 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