2010-11-04 6 views
0

je dois ajouter des objets sélectionnés par UIImagePickerController dans un NSMutabeArray, le code va comme:l'objet de UIImagePickerController dans 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 
      } 
} 

Le problème est qu'il fells toujours dans le cas bloc et n'exécute le bloc else lors de la cueillette mêmes images à plusieurs reprises. Toute idée sur ce serait apprécié.

Répondre

1

Je pense que votre problème est que deux instances de UIImage ne peuvent pas être comparées à l'aide isEqual :, qui containsObject: utilise, même si elles pointent vers le même fichier image. Je ne sais pas comment comparer deux UIImage mais vous pouvez peut-être regarder Generate hash from UIImage ou chercher "comparaison UIImage".

+0

Merci. Je l'ai résolu en utilisant la «solution moins qu'optimale» dans votre URL fournie. Merci beaucoup pour l'aide. –

0

Contrôle par coulée. Ajoutez ainsi:

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

Déjà vérifié, toujours pas de chance. –