iOS-将NSMutableArray保存到iPhone

iOS-将NSMutableArray保存到iPhone,ios,nsmutablearray,save,Ios,Nsmutablearray,Save,我将以假设的形式提问,这可能使我更容易解释 我有一个名为Person的类,其中有三个字段: NSString*name NSDate*出生日期;及 NSMutableArray*friends 示例对象如下所示: name=“约翰·史密斯” 出生日期=1985年4月1日 朋友=“西蒙·斯科特”;“詹妮弗·莱恩”;“玛丽·弗斯” 一旦用户将所需数据填入NSMutableArray,将这些数据保存到iPhone的最佳方式是什么?我预计最多会有100个Person对象实例,所需的只是在UITa

我将以假设的形式提问,这可能使我更容易解释

我有一个名为
Person
的类,其中有三个字段:

  • NSString*name
  • NSDate*出生日期
    ;及
  • NSMutableArray*friends
示例对象如下所示:

  • name
    =“约翰·史密斯”
  • 出生日期
    =1985年4月1日
  • 朋友
    =“西蒙·斯科特”;“詹妮弗·莱恩”;“玛丽·弗斯”
一旦用户将所需数据填入
NSMutableArray
,将这些数据保存到iPhone的最佳方式是什么?我预计最多会有100个
Person
对象实例,所需的只是在
UITableView
中显示这些数据,并允许用户随意添加和删除条目

我在这个网站上看到了很多建议,包括NSDictionary和writeToFile方法,但在我研究其中一个之前,我希望有人能给我指出正确的方向?我想确保我将使用最简单、最合适的方法

非常感谢。

@Achiral

这实际上取决于您想对数据做什么,以及您对代码灵活性的关注程度

然而,我的建议是使用CoreData创建一个SQLlite数据库,并使用上面列出的属性创建一个“Person”实体。我不知道您是否熟悉CoreData,但它在iOS上进行了高度优化,并且非常易于使用,因为它有一个用于创建数据模型的非常简单的“填空”样式表单。您还应该注意,CoreData是在iOS和OS X应用程序中存储数据的一种广为接受和支持的方式

我希望这能有所帮助。

请看一下。只要您坚持使用数据的核心对象类型集,就可以在一行中从文件或URL写入和读取数据,如下所示:

[people writeToURL:someURL atomically:NO];

您在问题中提到的类型(字符串、日期、数组、字典)都可以写入属性列表。

可能重复“…但在我研究其中一个…”您的第一个研究应该是查找相关问题,并阅读。请注意,核心数据通常被视为高级主题。如果你刚刚开始,你最好有一个属性列表或存档。@Caleb,我同意这比写plist或类似的东西更高级,但这并不是那么难,现在在线上有很多CoreData资源供初学者使用;此外,阻碍Cocoa/Cocoa Touch开发者成长的一个好方法是害怕CoreData.:)恐惧和亲吻是有区别的(即保持简单愚蠢)。人们应该阅读的关于核心数据的第一份文件中有一部分是这样说的:你还需要先了解很多其他的东西。相比之下,
[people writeToURL:someURL原子化:否]
非常简单,此时可能需要所有OP。当你写你的应用程序时,为什么要陷入过度的工程?@ Caleb,尽管我必须同意,CordEDA是“更难”的,当你考虑改变业务需求等的可能性时,它很难超过工程;请注意,我假设询问者不是在做合同,就是在做其他类型的任务。然而,如果他不是在其他人可能会看到的竞技场上做这件事,或者他会进行代码审查,那么你可以做任何你想做的事情;实际上,我在这里并没有被嘲笑,但我自己也经历了一次残酷的代码审查,因为我没有使用CD并向plist写入……我想说
writeToFile
更受欢迎。