2010-02-02 80 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

相關問題