iPod Touch和iPhone中的文档目录

时间:2009-07-12 02:57:01

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

我正在设计一个应用程序,它将数据读取到iPod touch / iPhone,并通过带有UDP的多播套接字发送给它,我需要将其作为文件存储在文档目录中。 iPhone或iPod Touch上是否存在?我知道有NSFileHandle和NSFileManager,这是我打算使用的,负责读取和写入文件,但我不知道iPod touch的“我的文档”部分在哪里,如果你知道我是什么我在说。我还不熟悉iPod / iPhone文件目录,所以任何帮助都表示赞赏!是否有某种“通用”目录,如果所有开发人员都参与了他们的应用程序,他们会使用这些目录存储他们的文件?

2 个答案:

答案 0 :(得分: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;
}

答案 1 :(得分:7)

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

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

如果从NSSearchPathForDirectoriesInDomains返回的NSArray为空,则lastObject返回nil,因此代码更短更清晰。

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