从iOS中的文本文件创建对象的最有效方法

时间:2012-07-08 05:00:54

标签: objective-c ios xml core-data spreadsheet

存储文本文件的方便方法是什么,以便在iOS中轻松创建对象?

例如:

  • 电子表格 - > XML - > NSObject子类(这个问题是Google Docs Spreadsheets只能导出到OpenDocument Spreadsheets XML文件,这非常不便于解析)
  • csv - > NSObject子类(csv太容易出错)

要存储的样本数据:

  • 姓名 - 号码 - 电子邮件
  • Alice - 012345 - Alice@Alice.com
  • Bob - 78910 - Bob@Bob.com

要创建的示例类:

@interface Person : NSObject
{
    NSString *name;
    NSString *number;
    NSString *email;
}

谢谢

3 个答案:

答案 0 :(得分:1)

在iOS中执行此操作的首选(且简单)方法是Property List(plist)文件。这是Apple's entry documentation to plists

它们本质上是iOS的JSON,实际上您可以使用NSJSONSerialization类方法轻松地在两者之间进行转换。

这种技术与Apple的工作方式(苹果开发社区的胜利)一致,并且不需要外部库。此外,如果您决定在将来扩展应用程序,那么可以在所有地方内置支持以便将plist写回来。

但是,应该提到的是,要从文件中获取实际的自定义对象(即自定义类的实例),您需要探索稍微复杂的object archiving世界。

答案 1 :(得分:0)

假设您在这里只有明文数据,那就是我要做的事情:

  1. 将电子表格导出为CSV。
  2. 使用CSV模块在python中读取CSV。
  3. 使用minidom模块转换为您喜欢的XML。
  4. 阅读Obj C中的XML。我使用了SMXML(https://github.com/nfarina/xmldocument/)。不是很快但很方便。
  5. 此过程也可以使用AppleScript自动完成。

答案 2 :(得分:0)

如果你想要一个非常优雅的解决方案并且你可以使用你想要的任何类型的文件,使用plist并使用initWithCoder:和encodeWithCoder:NSCoding协议中的方法将类/实例转换为属性列表对象成为可能