How can I store a UIImage in an NSDictionary?

2019-03-10 05:34发布

How can I store a UIImage in an NSDictionary?

6条回答
Melony?
2楼-- · 2019-03-10 05:40

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

Untested ;-)

查看更多
女痞
3楼-- · 2019-03-10 05:40

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

查看更多
干净又极端
4楼-- · 2019-03-10 05:43

OK I had this problem recently and the above solutions never worked for me. So if someone else finds their way here to solve the same problem, here is how it's done

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

// the 0.1 represents the compression quality 0.0 being lowest to 1.0 being the highest quality

then to get image back from dictionary use

[UIImage imageWithData:[imageDictionary objectForKey: kImageKey]];
查看更多
我想做一个坏孩纸
5楼-- · 2019-03-10 05:51

Yes you can:

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

UIImage *imgAgain = [dict objectForKey:@"aKeyForYourImage"];
查看更多
家丑人穷心不美
6楼-- · 2019-03-10 06:01

You cannot store UIImage object in a dictionary. You will have to convert the image into an NSData object and store that in dictionary.

NSData *imgData = UIImageJPEGRepresentation(yourImage, 0.0f);
[dictionary setObject:imgData forKey:@"your key"];
查看更多
\"骚年 ilove
7楼-- · 2019-03-10 06:04

It depends on what you want to do with your NSDictionary. While, yes, you can store a UIImage in NSDictionary, you may not be able to use said dictionary object in instances where you need it to conform to certain standards.

For example, you can use an NSDictionary as a value in standardUserDefaults, but only if every object in that dictionary is a property list object. UIImage is not a property list object. NSData is, so you can convert your UIImage to NSData with UIImageJPEGREpresentation, and store it that way, as mentioned above.

查看更多
登录 后发表回答