2010-02-02 6 views

Odpowiedz

15

tak można:

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

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

jakoś to nie działa :(dla mnie jest jakiś dodatkowy krok to trzeba zrobić? – raistlin

1

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

Nietestowane ;-)

1

[DICT setObject: obraz forKey: @ "ImageToStore"];

6

OK miałem ten problem niedawno i powyższe rozwiązania nigdy nie pracował dla mnie. Więc jeśli ktoś znajdzie swoją drogę tutaj, aby rozwiązać ten sam problem, oto jak to zrobić

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

// 0.1 reprezentuje jakość kompresji 0,0 będąc najniższego do 1,0 będąc najwyższą jakość

następnie dostać obraz z powrotem z użycia słownika

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

Nie ma potrzeby do tego. '' NSDictionary' może przechowywać wartości UIImage' dopóki nie spróbujesz aby utrzymać słownik w pliku plist – rmaddy

1

To zależy od tego, co chcesz zrobić ze swoim NSDictionary. Chociaż tak, możesz przechowywać UIImage w NSDictionary, możesz nie być w stanie użyć wspomnianego obiektu słownikowego w przypadkach, w których potrzebujesz go, aby dostosować się do określonych standardów.

Na przykład możesz użyć NSDictionary jako wartości w standardUserDefaults, ale tylko wtedy, gdy każdy obiekt w tym słowniku jest obiektem listy właściwości. UIImage nie jest obiektem listy właściwości. NSData to, możesz przekonwertować swój UIImage na NSData z UIImageJPEGREpresentation i przechowywać go w ten sposób, jak wspomniano powyżej.

3

Nie można zapisać obiektu UIImage w słowniku. Konieczne będzie przekonwertowanie obrazu na obiekt NSData i zapisanie go w słowniku.

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

Niepoprawnie. 'NSDictionary' może przechowywać wartości' UIImage', o ile nie będziesz próbować utrzymywać słownika w pliku plist. – rmaddy