我正在设计一个应用程序,它将数据读取到iPod touch/iPhone,并通过带有UDP的多播套接字发送给它,我需要将其作为文件存储在文档目录中.iPhone或iPod Touch上是否存在?我知道有NSFileHandle和NSFileManager,这是我打算使用的,负责读取和写入文件,但我不知道iPod touch的"我的文档"部分在哪里,如果你知道我是什么我在说.我还不熟悉iPod/iPhone文件目录,所以任何帮助都表示赞赏!是否存在某种"通用"目录,如果所有开发人员都参与了他们的应用程序,他们会使用这些目录来存储他们的文件?
您应该使用应用程序的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; }
最近,Core Data应用程序的模板提供了如下代码:
- (NSString *)applicationDocumentsDirectory { return [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject]; }
如果从NSSearchPathForDirectoriesInDomains返回的NSArray为空,则lastObject返回nil,因此代码更短更干净.
您应该注意的一件事 - 从iOS 5开始,您不应将非用户生成的数据放入Documents目录.您的应用可能会被拒绝.相反,你应该考虑将这些日志放在Caches
目录中.为了得到这一个路径,需要更换NSDocumentDirectory
与NSCachesDirectory
在上面的示例代码.