Nie mam pojęcia, dlaczego to nie działa.

NSData *data = [NSData dataWithContentsOfURL:place.iconData];
UIImage *image = [UIImage imageWithData:data];
[imageView setImage:image];

ImageView to IBOutlet podłączony przez IB. place.iconData to http://maps.gstatic.com/mapfiles/place_api /icons/generic_business-71.png. Jednak z jakiegoś powodu się nie ładuje. Każda pomoc jest mile widziana.

1
Mason 25 lipiec 2011, 07:52
Pamiętaj, że ładowanie obrazu przy użyciu tej metody jest ładowane synchronicznie i zablokuje kontroler widoku podczas ładowania obrazu przez sieć, co zwykle będzie bardzo zauważalnym opóźnieniem. Rozważ użycie NSURLConnection
 – 
Johnus
25 lipiec 2011, 08:30
Tak, czytałem o tym, ale nie do końca rozumiem. Czy istnieje link lub przykład, który jest naprawdę jasny, o którym wiesz, abym mógł to lepiej zaimplementować?
 – 
Mason
25 lipiec 2011, 08:47
Ten link wydaje się być w porządku. markj.net/iphone-asynchronous-table-image. Zauważ, że ogranicza rozmiar obrazu do 2K.
 – 
Johnus
25 lipiec 2011, 10:07
Hmm, to też nie działa... jakieś inne myśli?
 – 
Mason
25 lipiec 2011, 17:22

3 odpowiedzi

Najlepsza odpowiedź

Czy Twoje dane są uwalniane przed przypisaniem?

Może spróbuj ręcznie przydzielić pamięć dla NSData:

NSData *data = [[NSData alloc] initWithContentsOfURL:place.iconData];
UIImage *image = [[UIImage alloc] initWithData:data];
[imageView setImage:image];

[data release];
[image release];
2
Zhang 25 lipiec 2011, 17:29
Nie, nie jest. W końcu zrezygnowałem z IB i programowo stworzyłem UIImageview i działało dobrze. Domyśl.
 – 
Mason
25 lipiec 2011, 17:49
1
Nie można się pomylić z kodowaniem za pomocą Interface Builder :P Czasami, gdy przenosisz coś w Interface Builder, przerywa to połączenie między widokami i kontrolerami. Być może połączenie obiektu UIImageView kontrolera widoku jest zepsute? :D
 – 
Zhang
25 lipiec 2011, 17:52

Spróbuj tego:

NSURL *url = [NSURL URLWithString: @"http://maps.gstatic.com/mapfiles/place_api/icons/generic_business-71.png"];

NSData *data = [NSData dataWithContentsOfURL:url];
UIImage *image = [UIImage imageWithData:data];
[imageView setImage:image]; 
//or imageView.Image=image;
3
Perception 25 lipiec 2011, 08:16
1
To powinno działać, spróbuj z innym adresem URL obrazu. W przeciwnym razie sprawdź swoje poglądy i sprawdź, czy nie masz żadnych wartości zerowych.
 – 
Johnus
25 lipiec 2011, 10:00

Musisz użyć NSURL. Skorzystaj z tego adresu URL http://iosdevelopertips.com /kakao/pobierz-i-utwórz-obraz-z-adresu-url.html

1
Cœur 1 lipiec 2017, 09:18