Как я могу сохранить UIImage в NSDictionary? - PullRequest
17 голосов
/ 02 февраля 2010

Как я могу сохранить UIImage в NSDictionary?

Ответы [ 6 ]

16 голосов
/ 02 февраля 2010

Да, вы можете:

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

UIImage *imgAgain = [dict objectForKey:@"aKeyForYourImage"];
6 голосов
/ 03 февраля 2014

ОК. У меня недавно была эта проблема, и вышеупомянутые решения никогда не работали для меня. Так что, если кто-то еще найдет способ решить эту проблему, вот как это делается

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

// 0,1 представляет качество сжатия 0,0, являющееся самым низким, а 1,0 - самым высоким качеством

затем, чтобы получить изображение из словаря, используйте

[UIImage imageWithData:[imageDictionary objectForKey: kImageKey]];
3 голосов
/ 27 ноября 2014

Вы не можете хранить объект UIImage в словаре. Вам нужно будет преобразовать изображение в объект NSData и сохранить его в словаре.

NSData *imgData = UIImageJPEGRepresentation(yourImage, 0.0f);
[dictionary setObject:imgData forKey:@"your key"];
1 голос
/ 09 апреля 2014

Это зависит от того, что вы хотите сделать со своим NSDictionary.Хотя да, вы можете хранить UIImage в NSDictionary, но вы не сможете использовать указанный объект словаря в тех случаях, когда вам нужно, чтобы он соответствовал определенным стандартам.

Например, вы можете использовать NSDictionary какзначение в standardUserDefaults, но только если каждый объект в этом словаре является объектом списка свойств.UIImage не является объектом списка свойств.NSData есть, поэтому вы можете преобразовать ваш UIImage в NSData с помощью UIImageJPEGREpresentation и сохранить его таким образом, как упоминалось выше.

1 голос
/ 02 февраля 2010

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

1 голос
/ 02 февраля 2010

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

Не проверено; -)

...