2010-02-02 91 views

回答

15

是,您可以:

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

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

不知何故它不是为我工作:(有没有做这不需要任何额外的步骤? – raistlin 2013-02-05 15:57:36

1

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

未测试;-)

1

[字典的setObject:图像forKey:@ “ImageToStore”];

6

OK最近我有这个问题,上述解决方案从来没有为我工作。所以,如果有人在这里找到自己的方式来解决同样的问题,这里是它是如何做

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

// 0.1代表的压缩质量为0.0〜1.0是最低的是最高品质的

然后得到图片返回字典使用

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

没有必要为此'NSDictionary'可以存储'UIImage'值,只要你不尝试将字典保存到plist文件 – rmaddy 2016-09-06 14:51:19

1

这取决于你想用你的NSDictionary做什么。虽然,是的,你可以在NSDictionary中存储一个UIImage,你可能无法在需要它符合某些标准的情况下使用该字典对象。

例如,您可以在standardUserDefaults中使用NSDictionary作为值,但前提是该字典中的每个对象都是属性列表对象。 UIImage不是一个属性列表对象。 NSData是,所以你可以使用UIImageJPEGREpresentation将你的UIImage转换成NSData,并如上所述那样存储它。

3

不能将UIImage对象存储在字典中。您将不得不将图像转换为NSData对象并将其存储在字典中。

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

不正确。只要您不尝试将字典保存到plist文件,'NSDictionary'可以存储'UIImage'值。 – rmaddy 2016-09-06 14:51:35

相关问题