【发布时间】:2008-11-26 18:10:02
【问题描述】:
如何在 iPhone 项目中读取数据文件?例如,假设我有一个名为“level.dat”的静态文件,其结构如下: 障碍物:10 时间:100 障碍1:10,20 ...
我想将文件的内容读入 NSString 然后进行解析。如何将文件的内容读入字符串?此外,“level.dat”文件应位于项目的哪个位置?它应该在“资源”下还是仅在主目录中?
提前致谢!
【问题讨论】:
标签: iphone cocoa-touch
如何在 iPhone 项目中读取数据文件?例如,假设我有一个名为“level.dat”的静态文件,其结构如下: 障碍物:10 时间:100 障碍1:10,20 ...
我想将文件的内容读入 NSString 然后进行解析。如何将文件的内容读入字符串?此外,“level.dat”文件应位于项目的哪个位置?它应该在“资源”下还是仅在主目录中?
提前致谢!
【问题讨论】:
标签: iphone cocoa-touch
请参阅此答案: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];
【讨论】:
虽然这不是您要求的,但请考虑将您的文件转换为 plist。您必须将它们重新格式化为 XML,然后您可以将它们直接加载到 NSDictionary 中:
dict = [NSDictionary dictionaryWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"levels" ofType:@"plist"]];
【讨论】:
您是否考虑将数据放入 SQLite 数据库而不是平面文件?我发现这个 API 在 iPhone 上非常好用。
这就是我现在在手机上存储所有数据的方式。
【讨论】:
如果您在解析数据字符串时需要帮助,Cocoa For Scientist 上有一篇有用的文章
【讨论】: