2010-03-30 52 views
0

我正在与其他人开发iPhone应用程序。该应用程序适用于我,但他遇到了一个bug。我们认为这个bug与他为同一个应用程序获取多个Application目录有关。在我的〜/ Library/Application Support/iPhone Simulator/User/Applications中,我一直只有一个文件夹。适用于iPhone模拟器的多个应用程序支持目录?

他说当他只在这个应用上工作时,他会得到3或4个目录。我们认为这是我们的问题,因为我们的错误与显示存储在应用程序的“文档”文件夹中的图像有关。有谁知道他为什么要结束多个目录或如何阻止它?

编辑:

这里是图像写入文件的代码:

NSData *image = [NSData dataWithContentsOfURL:[NSURL URLWithString:[currentArticle articleImage]]]; 

      NSArray *array = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
      NSString *imagePath = [array objectAtIndex:0]; 

      NSFileManager *NSFM = [NSFileManager defaultManager]; 
      BOOL isDir = YES; 

      if(![NSFM fileExistsAtPath:imagePath isDirectory:&isDir]) 
       if(![NSFM createDirectoryAtPath:imagePath attributes:nil]) 
        NSLog(@"error"); 

      imagePath = [imagePath stringByAppendingFormat:@"/images"]; 

      if(![NSFM fileExistsAtPath:imagePath isDirectory:&isDir]) 
       if(![NSFM createDirectoryAtPath:imagePath attributes:nil]) 
        NSLog(@"error"); 

      imagePath = [imagePath stringByAppendingFormat:@"/%@.jpg", [currentArticle uniqueID]]; 

      [image writeToFile:imagePath atomically:NO]; 

这里是获取路径的代码时,我需要的图像:

- (NSString *)imagePath 
{ 
    NSArray *array = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
    NSString *imagePath = [array objectAtIndex:0]; 
    return [imagePath stringByAppendingFormat:@"/images/%@.jpg", [self uniqueID]]; 
} 

该应用程序对我很好,但我的合作伙伴说图像不会间歇性显示,并且他注意到他在他的Appl中获取了多个目录文件夹。

回答

0

我有这个问题(我将照片保存在应用程序文档目录中),并且在每次新建立后,目录get被重命名,所以我的路径不再有效。我制作了这两个函数(在我的应用程序委托中),它会为我想要保存或从文档或临时目录加载的文件提供路径。即使应用程序目录发生变化,只要您只存储文件名而不是完整路径,然后使用助手函数在稍后需要时获取路径,您将可以。这是我的功能:

+ (NSString*)fullPathToFile:(NSString*)file { 
NSArray* paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString* documentsDirectory = [paths objectAtIndex:0]; 

return [documentsDirectory stringByAppendingPathComponent:file]; 
} 

+ (NSString*)fullPathToTemporaryFile:(NSString*)file { 
return [NSTemporaryDirectory() stringByAppendingPathComponent:file]; 
} 

工程就像一个魅力。

+0

嗯..我们已经在使用这段代码了。也许我们的问题在于别处。 – 2010-03-30 21:53:47

+0

也许吧。也许如果你发布了一些代码,我们可能会发现问题。 – 2010-03-30 22:07:58

+0

我添加了代码 - 注意它有什么不对吗? – 2010-03-30 22:59:02

相关问题