iPhone是否使用唯一键加载和保存多个UIImage?

iPhone是否使用唯一键加载和保存多个UIImage?,iphone,objective-c,load,uiimage,save,Iphone,Objective C,Load,Uiimage,Save,我知道有一些在iPhone上保存和加载图像的解决方案。然而,没有一个对我很有效 例如,下面的链接有一个很好的代码块,它允许您使用唯一的键加载和保存UIImage,但我不知道如何在使用此代码加载图像时判断该键下的图像是否已经存在 如果你能帮我解决这个问题,我将不胜感激。我需要保存几个图像,并根据给定的密钥是否已存在加载它们。如果您想使用唯一密钥获取图像,请尝试使用UUID。这将始终为u映像提供唯一键。例如,这里有一个使用UUID的示例 - (NSString *)pathForImageFileW

我知道有一些在iPhone上保存和加载图像的解决方案。然而,没有一个对我很有效

例如,下面的链接有一个很好的代码块,它允许您使用唯一的键加载和保存UIImage,但我不知道如何在使用此代码加载图像时判断该键下的图像是否已经存在


如果你能帮我解决这个问题,我将不胜感激。我需要保存几个图像,并根据给定的密钥是否已存在加载它们。

如果您想使用唯一密钥获取图像,请尝试使用UUID。这将始终为u映像提供唯一键。例如,这里有一个使用UUID的示例

- (NSString *)pathForImageFileWithPrefix:(NSString *)Prefix
{
    CFUUIDRef   uuid;
    CFStringRef uuidStr;
    uuid = CFUUIDCreate(NULL);
    uuidStr = CFUUIDCreateString(NULL, uuid);
    NSData *imageData = UIImageJPEGRepresentation(chosenImage, 1.0);
    NSArray* paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);   
    NSString* documentsDirectory = [paths objectAtIndex:0]; 
    result = [documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"%@_%@.png",Prefix, uuidStr]];
    [imageData writeToFile:result atomically:NO];
    CFRelease(uuidStr);
    CFRelease(uuid);
    return result;
}

如果我没有弄错你的问题,你想知道一个具有给定图像名的文件是否已经存在?那你就可以用


bool fileExists=[NSFileManager defaultManager]fileExistsAtPath:filePath]

在我的原始帖子中,我已经用loadImage方法完成了这项工作。所以我有你的代码行和保存的图像的文件路径,然后有一个if语句,所以如果fileExists它将返回保存的图像,否则它将返回nil。然而,这似乎总是错误的,意味着我总是得到零回报。关于如何调整loadImage方法以检查图像是否存在,您有什么想法吗?您的文件路径是什么样子的?你确定它是正确的,包括完整的目录路径、文件名和文件扩展名吗?我记录了它并得到了这个:/var/mobile/Applications/42C18ABE-18B2-41C5-9389-BC5C15BD8BD4/Documents/imgSaved.png看起来正确,否?如果你的图像名是imgSaved.png,是的。在这种情况下,不知道为什么应该为fileExists设置false。。。
- (NSString *)pathForImageFileWithPrefix:(NSString *)Prefix
{
    CFUUIDRef   uuid;
    CFStringRef uuidStr;
    uuid = CFUUIDCreate(NULL);
    uuidStr = CFUUIDCreateString(NULL, uuid);
    NSData *imageData = UIImageJPEGRepresentation(chosenImage, 1.0);
    NSArray* paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);   
    NSString* documentsDirectory = [paths objectAtIndex:0]; 
    result = [documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"%@_%@.png",Prefix, uuidStr]];
    [imageData writeToFile:result atomically:NO];
    CFRelease(uuidStr);
    CFRelease(uuid);
    return result;
}