在 iPhone 项目中加载数据文件
Posted
技术标签:
【中文标题】在 iPhone 项目中加载数据文件【英文标题】:Loading data files in iPhone project 【发布时间】:2008-11-26 18:10:02 【问题描述】:如何在 iPhone 项目中读取数据文件?例如,假设我有一个名为“level.dat”的静态文件,其结构如下: 障碍物:10 时间:100 障碍1:10,20 ...
我想将文件的内容读入 NSString 然后进行解析。如何将文件的内容读入字符串?此外,“level.dat”文件应位于项目的哪个位置?它应该在“资源”下还是仅在主目录中?
提前致谢!
【问题讨论】:
【参考方案1】:请参阅此答案:How to fopen() on the iPhone?,它显示了如何访问捆绑包中的资源。获得路径后,只需使用 [NSString stringWithContentsOfFile:encoding:error:]。
NSString *path = [[NSBundle mainBundle] pathForResource: @"level" ofType: @"dat"]
NSError *error = nil;
NSString *data = [NSString stringWithContentsOfFile: path
encoding: NSUTF8StringEncoding
error: &error];
【讨论】:
【参考方案2】:虽然这不是您要求的,但请考虑将您的文件转换为 plist。您必须将它们重新格式化为 XML,然后您可以将它们直接加载到 NSDictionary 中:
dict = [NSDictionary dictionaryWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"levels" ofType:@"plist"]];
【讨论】:
请注意,您可以对数组做同样的事情,很可能他的数据可能更适合***数组而不是字典。【参考方案3】:您是否考虑将数据放入 SQLite 数据库而不是平面文件?我发现这个 API 在 iPhone 上非常好用。
这就是我现在在手机上存储所有数据的方式。
【讨论】:
【参考方案4】:如果您在解析数据字符串时需要帮助,Cocoa For Scientist 上有一篇有用的文章
【讨论】:
以上是关于在 iPhone 项目中加载数据文件的主要内容,如果未能解决你的问题,请参考以下文章