2010-02-02 11 views

Répondre

15

Oui, vous pouvez:

NSMutableDictionary *dict = [NSMutableDictionary dictionaryWithCapacity:1]; 
UIImage *img = ...; 
[dict setObject:img forKey:@"aKeyForYourImage"]; 

UIImage *imgAgain = [dict objectForKey:@"aKeyForYourImage"]; 
+5

en quelque sorte il ne fonctionne pas pour moi :(est-il une étape supplémentaire de besoin à faire? – raistlin

1

[dictionary setObject:yourImage forKey:@"whatever key you want"];

;-) Non testé

1

[dict setObject: l'image forKey: @ "ImageToStore"];

6

OK J'ai eu ce problème récemment et les solutions ci-dessus n'a jamais travaillé pour moi. Donc, si quelqu'un d'autre trouve leur chemin ici pour résoudre le même problème, voici comment faire

NSDictionary *imageDictionary = @{ 
kImageKey: UIImageJPEGRepresentation(/*INSERT YOUR UIImage HERE*/,0.1) 
           }; 

// 0,1 représente la qualité de compression 0,0 étant la plus faible à 1,0 étant la plus haute qualité

puis pour obtenir image retour de l'utilisation du dictionnaire

[UIImage imageWithData:[imageDictionary objectForKey: kImageKey]]; 
+0

Il n'y a pas besoin pour cela. '' NSDictionary' peut stocker des valeurs UIImage' aussi longtemps que vous ne cherchez pas pour conserver le dictionnaire dans un fichier plist – rmaddy

1

Cela dépend de ce que vous voulez faire avec votre NSDictionary. Bien que, oui, vous pouvez stocker un UIImage dans NSDictionary, vous ne pourrez peut-être pas utiliser cet objet dictionnaire dans les cas où vous en avez besoin pour se conformer à certaines normes. Par exemple, vous pouvez utiliser un NSDictionary comme valeur dans standardUserDefaults, mais uniquement si chaque objet de ce dictionnaire est un objet de liste de propriétés. UIImage n'est pas un objet de liste de propriétés. NSData est, vous pouvez donc convertir votre UIImage en NSData avec UIImageJPEGREpresentation, et le stocker de cette façon, comme mentionné ci-dessus.

3

Vous ne pouvez pas stocker l'objet UIImage dans un dictionnaire. Vous devrez convertir l'image en un objet NSData et l'enregistrer dans le dictionnaire.

NSData *imgData = UIImageJPEGRepresentation(yourImage, 0.0f); 
[dictionary setObject:imgData forKey:@"your key"]; 
+1

Incorrect. 'NSDictionary' peut stocker les valeurs' UIImage' tant que vous n'essayez pas de conserver le dictionnaire dans un fichier plist. – rmaddy