Objective c iPod Touch和iPhone中的文档目录

Objective c iPod Touch和iPhone中的文档目录,objective-c,xcode,ipod-touch,directory-structure,Objective C,Xcode,Ipod Touch,Directory Structure,我正在设计一个应用程序,将数据读取到iPod touch/iPhone,然后通过UDP多播套接字发送到iPod touch/iPhone,我需要将其作为文件存储在文档目录中。iPhone或ipodtouch上是否有这种功能?我知道有NSFileHandle和NSFileManager,这是我计划使用的,负责读取和写入文件,但如果你知道我在说什么,我不确定iPod touch的“我的文档”部分在哪里。我对iPod/iPhone文件目录还不太熟悉,所以非常感谢您的帮助!是否有某种“通用”目录,所有开

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

您应该使用应用程序的文档目录来存储持久文件。您可以使用此功能获取目录的路径,Apple在其使用核心数据的应用程序模板中包括此功能:

/**
 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;
}

最近,核心数据应用程序的模板提供了如下代码:

- (NSString *)applicationDocumentsDirectory {
    return [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
}
如果从NSSearchPathForDirectoriesInDomains返回的NSArray为空,则lastObject返回nil,因此代码更短、更干净

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