2010-02-02 9 views

Respuesta

15

Sí se puede:

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

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

por alguna razón no está funcionando para mí :(¿hay algún paso adicional que de ser necesario hacer? – raistlin

1

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

No probado ;-)

1

[dict setObject: Imagen forKey: @ "ImageToStore"];

6

bien he tenido este problema recientemente y las soluciones anteriores no funcionó para mí. Así que si alguien encuentra su camino aquí para resolver el mismo problema, aquí es cómo se hace

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

// el 0,1 representa la calidad de compresión 0.0 siendo más bajo a 1,0 siendo la más alta calidad

a continuación para obtener imagen atrás del uso del diccionario

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

No hay necesidad de esto. '' NSDictionary' puede almacenar valores UIImage', siempre y cuando no lo intentas para persistir el diccionario a un archivo plist. – rmaddy

1

Depende de lo que quiera hacer con su NSDictionary. Si bien, sí, puede almacenar un UIImage en NSDictionary, es posible que no pueda usar dicho objeto de diccionario en los casos en que lo necesite para cumplir con ciertos estándares.

Por ejemplo, puede usar un NSDictionary como valor en standardUserDefaults, pero solo si cada objeto en ese diccionario es un objeto de lista de propiedades. UIImage no es un objeto de la lista de propiedades. NSData es, por lo que puede convertir su UIImage a NSData con UIImageJPEGREpresentation, y almacenarlo de esa manera, como se mencionó anteriormente.

3

No se puede almacenar el objeto UIImage en un diccionario. Deberá convertir la imagen en un objeto NSData y almacenarla en el diccionario.

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

Incorrecto. 'NSDictionary' puede almacenar valores' UIImage' siempre que no intente persistir el diccionario en un archivo plist. – rmaddy

Cuestiones relacionadas