【问题标题】:Document Directory in iPod Touch and iPhoneiPod Touch 和 iPhone 中的文档目录
【发布时间】:2010-11-10 01:19:49
【问题描述】:

我正在设计一个将数据读取到 iPod touch/iPhone 的应用程序,该数据通过 UDP 多播套接字发送给它,我需要将其作为文件存储在文档目录中。 iPhone 或 iPod Touch 上是否存在这种情况?我知道有 NSFileHandle 和 NSFileManager,这是我计划使用的,负责读取和写入文件,但我不确定 iPod touch 的“我的文档”部分在哪里,如果你知道我的话是说。我对 iPod/iPhone 文件目录还不是很熟悉,因此感谢您的帮助!是否有某种“通用”目录可供所有开发人员用来存储他们的文件(如果他们的应用程序有任何参与)?

【问题讨论】:

    标签: objective-c xcode ipod-touch directory-structure


    【解决方案1】:

    最近,Core Data 应用程序的模板提供了如下代码:

    - (NSString *)applicationDocumentsDirectory {
        return [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
    }
    

    如果 NSSearchPathForDirectoriesInDomains 返回的 NSArray 为空,lastObject 返回 nil,因此代码更简洁。

    您应该注意的一件事——从 iOS 5 开始,您不应该将非用户生成的数据放入 Documents 目录。您的应用可能会被拒绝。相反,您应该考虑将此类日志放在Caches 目录中。要获得这个路径,你需要在上面的示例代码中将NSDocumentDirectory替换为NSCachesDirectory

    【讨论】:

      【解决方案2】:

      您应该使用应用程序的 Documents 目录来存储持久文件。您可以使用此函数获取目录的路径,Apple 将其包含在使用 Core Data 的应用程序模板中:

      /**
       Returns the path to the application's documents directory.
       */
      - (NSString *)applicationDocumentsDirectory {
      
          NSArray *paths = 
            NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
          NSString *basePath = ([paths count] > 0) ? [paths objectAtIndex:0] : nil;
          return basePath;
      }

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-12-25
        • 1970-01-01
        • 1970-01-01
        • 2010-12-30
        • 1970-01-01
        • 1970-01-01
        • 2011-05-17
        • 1970-01-01
        相关资源
        最近更新 更多