【问题标题】:Loading data files in iPhone project在 iPhone 项目中加载数据文件
【发布时间】:2008-11-26 18:10:02
【问题描述】:

如何在 iPhone 项目中读取数据文件?例如,假设我有一个名为“level.dat”的静态文件,其结构如下: 障碍物:10 时间:100 障碍1:10,20 ...

我想将文件的内容读入 NSString 然后进行解析。如何将文件的内容读入字符串?此外,“level.dat”文件应位于项目的哪个位置?它应该在“资源”下还是仅在主目录中?

提前致谢!

【问题讨论】:

    标签: iphone cocoa-touch


    【解决方案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 上有一篇有用的文章

        【讨论】:

          猜你喜欢
          • 2010-09-23
          • 1970-01-01
          • 2011-01-26
          • 1970-01-01
          • 1970-01-01
          • 2016-08-28
          • 1970-01-01
          • 1970-01-01
          • 2018-07-11
          相关资源
          最近更新 更多