0
我試圖下載圖像的數組的數組,但我從來沒有收到圖像回調:afnetworking下載圖像
for (int i = 0; i < self.apartments.count; i++) {
NSLog(@"downloading another image");
ATProperty *aProp = self.apartments[i];
if (aProp.aptImages.count > 0) {
NSURL *url = [NSURL URLWithString:aProp.aptImages[0]];
NSLog(@"url string: %@", aProp.aptImages[0]);
NSURLRequest *request = [NSURLRequest requestWithURL:url];
UIImage *placeholderImage = [UIImage imageNamed:@"loading_apt.png"];
UIImageView *anotherImage;
NSLog(@"about to start req");
[anotherImage setImageWithURLRequest:request
placeholderImage:placeholderImage
success:^(NSURLRequest *request, NSHTTPURLResponse *response, UIImage *image)
{
NSLog(@"got an IMAGE ");
self.imagesArray[i] = image;
if (self.apartments[0] == aProp) [self setupDraggableView:image];
} failure:nil];
} else {
UIImage *defImage = [UIImage imageNamed:@"default_apt.png"];
if (self.apartments[0] == aProp) [self setupDraggableView:defImage];
[self.imagesArray addObject:defImage];
}
}
正如你所看到的,我真的不希望設置一個ImageView的,我只是想將UIImage放入數組中供以後使用。在這種情況下,「獲取IMAGE」日誌語句永遠不會被接收到。爲什麼會這樣呢?該網址是有效的。此外,這有點像一個JavaScript封閉?例如,如果我在數組中共有5個公寓,那麼當我執行第一個標註(i = 0)並獲得成功回調時,我是否會將標註實例化(即1)的值?
爲什麼你使用AF的UIImageView類只是爲了下載圖像,如果你不想把它設置爲圖像視圖?僅僅使用NSURLConnection/Session API來下載它不是更簡單嗎? – Andrew
我不知道...會不會是? – thebiglebowski11
好吧,是的。它確實爲您提供了一個緩存系統,但它也會默認擴展圖像,以便它可以在圖像視圖上呈現,因此您正在做很多不一定需要的工作在這個時候做。 https://github.com/AFNetworking/AFNetworking/blob/master/UIKit%2BAFNetworking/UIImageView%2BAFNetworking.m和http://cocoadocs.org/docsets/AFNetworking/2.0.0/Classes/AFImageResponseSerializer.html瞭解更多信息。你也可以分配一個你將要丟棄的UIImageView,雖然它不是很貴,但仍然可以省下很多額外的工作。 – Andrew