3

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

4

2 回答 2

7

您应该使用应用程序的 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;
}
于 2009-07-12T03:04:00.210 回答
7

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

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

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

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

于 2010-10-04T13:28:52.973 回答