0

我创建了一个 NSObject 类来存储数据。目前在我的一个视图控制器中,我使用

NSArray *array = @[[Group groupWithName:@"name" type:@"type"], ...];

在 Group 类中,这被转换为一个对象:

+ (instancetype)groupWithName:(NSString *)name type:(NSString *)type;

此数组中的条目数可能会变得相当大,我宁愿将它放在文本文件中。如何转换从 txt 文件中读取的 NSStrings 并将它们转换为类(组)对象?

4

1 回答 1

1

将复杂对象的初始化放入文本文件的一种方法是使用 JSON、XML 或一些自定义格式,然后在运行时从资源中读取它们,并将其反序列化为对象。

这个答案建议库将 JSON 解析为对象;这是一个指向外部库的链接,可让您进行 XML 反序列化。自定义格式可能就像在循环中从文件中读取键值对列表并随时调用groupWithName:type:一样简单。

这种方法的问题在于它强制您的程序在运行时处理字符串,而不是让编译器进行解析。如果您当前方法的唯一问题是代码的长度,一个简单的替代方法是将数组初始化移动到一个函数中,将该函数放入一个单独的文件中,然后调用该函数而不是嵌入冗长的片段初始化代码到您的文件中。最终结果与编译器在编译时完成的大部分“繁重工作”相似。

于 2013-08-12T17:03:22.790 回答