iPod Touch和iPhone中的文档目录

3
我正在设计一款应用程序,通过UDP的多播套接字将数据发送到iPod touch/iPhone,我需要将其存储为文件并保存在文档目录中。iPhone或iPod Touch上存在这个目录吗?我知道有NSFileHandle和NSFileManager,我计划使用它们来处理读写文件,但是我不确定iPod touch的“My Documents”部分在哪里,如果你懂我的意思的话。我对iPod/iPhone文件目录并不熟悉,所以希望得到任何帮助!所有开发人员是否都使用某种“通用”目录来存储他们应用程序中涉及到的文件?
2个回答

7

您应该使用应用程序的文档目录来存储持久文件。您可以使用此函数获取目录的路径,苹果在使用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;
}

7

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

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

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

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接