【发布时间】:2010-11-06 02:16:52
【问题描述】:
下面的代码保存到磁盘是否正确?
// get the path to the "Documents" directory
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
// get the path to our plist ("Documents/foo.plist")
NSString *plistPath = [documentsDirectory stringByAppendingPathComponent:@"foo.plist"];
// read or create plist
NSMutableDictionary *dict;
// check if our plist already exists in the Documents directory...
NSFileManager *fileManager = [NSFileManager defaultManager];
if ( [fileManager fileExistsAtPath:plistPath] ) {
// ...if it does, read it
NSLog(@"dict existed, reading %@", plistPath);
dict = [NSMutableDictionary dictionaryWithContentsOfFile:plistPath];
} else {
// ...if it doesn't, create it
NSLog(@"dict didn't exist, creating...");
dict = [NSMutableDictionary dictionaryWithCapacity:1];
【问题讨论】:
-
如果有效,为什么不试试呢?
-
同意 Eiko - 如果您遇到具体问题,请公开它们,否则,答案是“自己运行以找出并停止浪费他人的时间。”
-
没有太多信息可以继续。有没有错误?如果是,它们是什么。我希望你不会认为我们会将它复制/粘贴到一个新的 Xcode 项目中,看看它是否有效?你可以自己做。
-
致 Eiko 和 Joshua Nozzi。对于发帖不当,我深表歉意。几天来,我一直在追查这个问题(如何持久保存数据),在沮丧的时刻(轻描淡写)刚刚发布了上述内容,希望得到答案。我发现了归档并将采取这条路线。
-
Andy Elliott:此代码不会在存档中读取。 (嗯,它会,但内容不会是你所期望的。)它们的格式不同。如果你想读一个plist,如这个问题所示,你必须写一个plist。如果要解码存档,则必须对存档进行编码。