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