如何在NSDictionary中存储UIImage?

时间:2010-02-02 17:29:28

标签: objective-c iphone uiimage nsdictionary

如何在NSDictionary中存储UIImage?

6 个答案:

答案 0 :(得分:16)

是的,你可以:

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

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

答案 1 :(得分:6)

好的,我最近遇到了这个问题,上述解决方案对我来说没有用。因此,如果有其他人在这里找到解决同样问题的方法,那么这就是它的完成方式

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

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

然后从字典中取回图像

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

答案 2 :(得分:3)

您无法将UIImage对象存储在字典中。您必须将图像转换为NSData对象并将其存储在字典中。

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

答案 3 :(得分:1)

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

未经测试; - )

答案 4 :(得分:1)

[dict setObject:image forKey:@“ImageToStore”];

答案 5 :(得分:1)

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

例如,您可以将NSDictionary用作standardUserDefaults中的值,但前提是该字典中的每个对象都是属性列表对象。 UIImage不是属性列表对象。 NSData是,因此您可以使用UIImageJPEGREpresentation将UIImage转换为NSData,并以这种方式存储它,如上所述。