代码之家  ›  专栏  ›  技术社区  ›  Muhammad Umar

在iPhone中,在文档目录中保存具有特定名称的文件失败

  •  -1
  • Muhammad Umar  · 技术社区  · 7 年前

    我使用以下代码在iPhone文档目录中保存一个文件

    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);
    NSString *documentsPath = [paths objectAtIndex:0];
    NSString *mediaFile = [documentsPath stringByAppendingPathComponent:[message getMediaName]];
    NSString *filePath = [documentsPath stringByAppendingPathComponent:[NSString stringWithFormat:@"%@%@", mediaFile, IMAGE_EXTENSION]];
    NSError *error = nil;
    [data writeToFile:filePath options:NSDataWritingAtomic error:&error];
    

    到文件的路径确实存在,我已经通过取景器检查。不知道为什么我会犯错 Error Domain=NSCocoaErrorDomain Code=4 "The folder “32286_1_44f74dc9d027d53bfa3e0bde9a28bf49.jpg” doesn’t exist."

    1 回复  |  直到 7 年前
        1
  •  3
  •   Indrajeet    7 年前

    问题出在这两条线上

    NSString *mediaFile = [documentsPath stringByAppendingPathComponent:[message getMediaName]];
    NSString *filePath = [documentsPath stringByAppendingPathComponent:[NSString stringWithFormat:@"%@%@", mediaFile, IMAGE_EXTENSION]];
    

    输出 mediaFile

    /Users/Umar/Library/Developer/CoreSimulator/Devices/8B419461-4E18-4E2F-923D-01092CA2263C/data/Containers/Data/Application/AD869525-92F9-4C5A-8FCE-CF67F05F8CEA/Documents/32286_1_44f74dc9d027d53bfa3e0bde9a28bf49

    输出 filePath

    documentPath + + Image Extension

    所以问题是文档路径存在两次,这就是编译器在查找路径和返回错误方面存在问题的原因。