19

如何将 UIImage 存储在 NSDictionary 中?

4

6 回答 6

19

是的你可以:

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

UIImage *imgAgain = [dict objectForKey:@"aKeyForYourImage"];
于 2010-02-02T17:42:31.327 回答
6

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

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

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

然后从字典中取回图像

[UIImage imageWithData:[imageDictionary objectForKey: kImageKey]];
于 2014-02-02T20:43:38.750 回答
3

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

NSData *imgData = UIImageJPEGRepresentation(yourImage, 0.0f);
[dictionary setObject:imgData forKey:@"your key"];
于 2014-11-27T11:36:30.370 回答
1

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

未经测试;-)

于 2010-02-02T17:42:04.650 回答
1

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

于 2010-02-02T17:42:27.303 回答
1

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

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

于 2014-04-09T16:06:59.970 回答