iphone - 将 txt 文件转换为带有实例类型变量的 NSArray

标签 iphone ios database arrays associative-array

我创建了一个 NSObject 类来存储数据。目前,在我的一个 View Controller 中,我使用

为此数据设置了一个数组

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

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

+ (instancetype)groupWithName:(NSString *)名称类型:(NSString *)类型;

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

最佳答案

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

This answer建议将 JSON 解析为对象的库;这是a link to an external library that lets you do XML deserialization .自定义格式可能就像从循环中的文件中读取键值对列表一样简单,然后随时调用groupWithName:type:

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

关于iphone - 将 txt 文件转换为带有实例类型变量的 NSArray,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18192389/

相关文章:

mysql - 在数据库中存储 'invalid' 日期

iphone - 崩溃 : if the file name consists forward slash like "te/st.pdf"

mysql - 关于创建过程的数据库帮助

iphone - 如何避免在 Objective-C 中意外覆盖方法或属性

objective-c - 核心图像 CIPerspectiveTransform 过滤器 : How to use CIVectors?

iphone - 应用程序 ID 在 iOS 应用程序中的用途是什么?将其设为字母数字的缺点是什么?

ios - 如何使用来自 ObjC 类的 std::function 回调在 C++ 中进行异步工作?

mysql - 我应该为我的 MySQL 数据库使用 MyISAM 还是 InnoDB 表?

iphone - 如何同时拖动2个 ScrollView ?

iphone - cocos2d 场景之间传递音频