示例:如果我使用了这个,那么iPhone在哪里存储文件?
if (![NSKeyedArchiver archiveRootObject:your_object toFile:@"filename.plist"])
// save failed.
在我的mac上,filename.plist直接进入Macintosh HD。没有文件夹。此外,NSKeyedArchiver似乎没有要求路径,仅用于文件名。奇怪与否?
该文件如何备份iTunes?
答案 0 :(得分:4)
那实际上取决于你要求它保存文件的位置,在你的情况下,你说的是
它存储filename.plist
,它将存储在根/
。
如果你想把它存放在一个特定的位置,只需给它一个完整的路径,就像Diederik Hoogenboom告诉你的那样(这会将它存储在Documents目录中)
或者只是给它保存文件的绝对路径。
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *filePath = [documentsDirectory stringByAppendingPathComponent: @"myFile.plist"];
[NSKeyedArchiver archiveRootObject:your_object toFile:filePath];
这应该可能已经为你清理了一点。
答案 1 :(得分:1)
存储文件的正确位置是文档文件夹:
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
答案 2 :(得分:1)
archiveRootObject:toFile:
所以你应该传递一个路径而不是文件名。否则NSKeyedArchiver
将假定您要将其存储在设备硬盘的根目录中
为确保iTunes能够备份内容,您需要将数据保存在文档文件夹中,就像Diederik Hoogenboom已经向您展示的那样。请查看this指南。