【问题标题】:I have a plist that is an array of dictionaries I need to save to documents directory is this code correct?我有一个 plist,它是我需要保存到文档目录的字典数组,这段代码是否正确?
【发布时间】: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。如果要解码存档,则必须对存档进行编码。

标签: cocoa directory documents


【解决方案1】:

没有。

一方面,它最后缺少一个右大括号,但也许你只是在将代码复制到问题中时忽略了它。

另一方面,代码在字典中读取;它不会从任何地方获取(任何东西的)数组,也不会写出任何东西(数组或其他任何东西)。

听起来你从某个地方复制了代码,希望它是你需要的。不要那样做。 编写您自己的代码。如果您愿意,可以阅读代码,但只能阅读它;不要只是将代码复制到您的程序中而不了解它的作用,也不要依赖其他人告诉您代码的作用。

要成为任何语言或框架的程序员,您必须能够阅读该语言/框架的代码。阅读Objective-C Programming Language和阅读Cocoa Fundamentals Guide;一旦你了解了这些指南所教授的概念,剩下的就是练习阅读代码。

显然,您还必须能够使用目标语言/框架编写代码。复制别人的代码不是替代品。充其量,您最终会得到一个不稳定或根本不起作用的劣质程序;在最坏的情况下(如果您作为承包商或员工“编程”),您将犯有剽窃罪。

【讨论】:

  • 谢谢彼得。我当然不是承包商。我是纳什维尔的词曲作者,刚刚学习新东西!保存数据不是我一直在阅读的书籍所涉及的内容,我可以理解为什么。这是一个具有挑战性的概念。我现在已经掌握了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-08
相关资源
最近更新 更多