我的NSDocumenDirectory存盘出现了奇怪的问题。这里有一个预览图:首先,我选择图片(在我的imagePickerViewController中):

在我的PreviewController

因此,在第一次尝试时,它是可以的。
然后,我重新访问imagePickerViewController以添加另一个图像:

在我的PreviewController

这就是问题所在。在上面的图像中,它重新复制了旧预览中的最后一张图像(就像一个副本)。我不知道我在代码中做错了什么。但是当文件存在时,我会保存它。敬请参阅:
for (int i = 0; i < info.count; i++) {
NSLog(@"%@", [info objectAtIndex:i]);
NSArray *paths = NSSearchPathForDirectoriesInDomains( NSDocumentDirectory, NSUserDomainMask ,YES );
NSString *documentsDir = [paths objectAtIndex:0];
NSString *savedImagePath = [documentsDir stringByAppendingPathComponent:[NSString stringWithFormat:@"firstSlotImages%d.png", i]];
if ([[NSFileManager defaultManager] fileExistsAtPath:savedImagePath]) {
NSLog(@"file doesnt exist");
} else {
ALAssetRepresentation *rep = [[info objectAtIndex: i] defaultRepresentation];
UIImage *image = [UIImage imageWithCGImage:[rep fullResolutionImage]];
//----resize the images
image = [self imageByScalingAndCroppingForSize:image toSize:CGSizeMake(256,256*image.size.height/image.size.width)];
NSData *imageData = UIImagePNGRepresentation(image);
[imageData writeToFile:savedImagePath atomically:YES];
NSLog(@"saving at:%@",savedImagePath);
}
}我需要的就是用新的图像再次reAdd相同的图像。与上一次预览相同。
发布于 2012-07-11 03:28:20
这四个图像按照它们在预览中显示的顺序传递,因此在第一个示例中,橙色的猫是第三个,在第二个示例中,橙色的猫是第四个。新图像没有保存,因为它是第三个图像,并且您已经有一个名为"firstSlotImages2.png“的文件。如果在不检查文件是否存在的情况下重新保存每个图像,则应该会得到所需的结果。
在媒体信息中有一个关键字:UIImagePickerControllerMediaURL,它返回一个NSURL,将其转换为字符串并获取lastPathComponent。使用此文件名保存到要将其保存到的目录。然后,您可以通过在NSMutableArray或NSMutableDictionary中保存相同的文件名来保存对这些图像的引用
https://stackoverflow.com/questions/11411135
复制相似问题