我需要将UIImagePickerController选择的对象添加到NSMutabeArray中,代码如下:
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
[picker dismissModalViewControllerAnimated:YES];
if(![imagesArray containsObject:[info objectForKey:@"UIImagePickerControllerOriginalImage"]])
{
[imagesArray addObject:[info objectForKey:@"UIImagePickerControllerOriginalImage"]];
}
else {
//some procedures
}
}
问题是它总是落入if块,并且在重复选择相同图像时从不执行else块。任何关于此的线索将不胜感激。
答案 0 :(得分:1)
我认为您的问题是无法使用isEqual:来比较UIImage的两个实例,其中包含Object:正在使用,即使它们指向同一个图像文件。我不知道如何比较两个UIImage,但你可以查看Generate hash from UIImage或搜索“比较UIImage”。
答案 1 :(得分:0)
通过施法检查。以这种方式添加它:
UIImage *img =[info objectForKey:@"UIImagePickerControllerOriginalImage"];
if(![imagesArray containsObject:img])
[imagesArray addObject:img];