2010-11-04 49 views
0

对象,我需要通过的UIImagePickerController选择的对象添加到NSMutabeArray,代码都按:的UIImagePickerController在NSMutableArray的

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { 

    [picker dismissModalViewControllerAnimated:YES]; 

    if(![imagesArray containsObject:[info objectForKey:@"UIImagePickerControllerOriginalImage"]]) 
     { 
     [imagesArray addObject:[info objectForKey:@"UIImagePickerControllerOriginalImage"]]; 

     } 
    else { 
      //some procedures 
      } 
} 

的问题是,它总是采伐到,如果块从不执行else块采摘时相同的图像反复。任何线索,这将不胜感激。

回答

1

我觉得你的问题是,UIImage的两个实例可以使用不的isEqual :,它containsObject进行比较:使用,即使它们指向同一个图像文件。我不知道如何比较两个UIImage,但也可以查看Generate hash from UIImage或搜索“比较UIImage”。

+0

谢谢。我在你提供的url中使用'less than optimal solution'解决了这个问题。非常感谢您的帮助。 – 2010-11-05 07:03:45

0

通过铸造检查。它添加了这种方式:

UIImage *img =[info objectForKey:@"UIImagePickerControllerOriginalImage"]; 
if(![imagesArray containsObject:img]) 
[imagesArray addObject:img]; 
+0

已经选中,仍然没有运气。 – 2010-11-04 09:17:56