Почему мой метод nimbus didImageLoad не вызывается? - PullRequest
0 голосов
/ 01 февраля 2012

Я новичок в Nimbus. Сейчас мое приложение пытается получить 4 изображения с помощью этого кода:

for (int i=minFoto; i<=maxFoto; i++) {

    NINetworkImageView* networkImageView = [self networkImageView];

    NSString *resourceURL = [NSString stringWithFormat:@"%@registration/rest/users/account_get_foto/%@?fotoId=%d", baseURL, ssid,  i];

    NSLog(resourceURL);

    [networkImageView setPathToNetworkImage:resourceURL
                             forDisplaySize: CGSizeMake(50, 50)
                                contentMode: networkImageView.contentMode];

Я знаю, что мой цикл работает, потому что я вижу, что все четыре NSLog работают правильно. Тем не менее, я получаю только первое изображение. networkImageViewDidStartLoad вызывается только один раз, и не вызывается ни didLoadImage, ни networkImageViewDidFailLoad. Я думаю, странно, что didLoadImage никогда не вызывается. Никогда. Я знаю, что у меня есть данные, потому что я использую CharlieProxy (отличное приложение, кстати, стоит $ 50), и он показывает данные изображения в ответных пакетах.

Итак, я прокомментировал это от своего делегата:

[[Nimbus networkOperationQueue] setMaxConcurrentOperationCount:1];

И, как и следовало ожидать, я получаю 4 вызова networkImageViewDidStartLoad и все еще ноль в didLoadImage или networkImageViewDidFailLoad.

Вот мои заголовки запросов (от CharlieProxy)

GET /registration/rest/users/account_get_foto/fdbc2222-7b75-4ff4-b111-623e951e5b00?fotoId=134     HTTP/1.1
Host: -------------:8080
User-Agent: Ferret/1.0 CFNetwork/548.0.3 Darwin/11.2.0
Accept: */*
Accept-Language: en-us
Accept-Encoding: gzip, deflate
Connection: keep-alive

и вот заголовки ответа, показывающие «200 OK»

HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
X-Powered-By: Servlet/3.0; JBossAS-6
Content-Type: image/*
Content-Length: 461109
Date: Tue, 31 Jan 2012 21:12:33 GMT

âPNG (png data deleted...)

Теперь я немного озадачен. Мой сервер явно возвращает данные изображения, но мое приложение просто не получает их. Есть идеи?

1 Ответ

0 голосов
/ 01 февраля 2012

Ну, я нашел это.Можно также ввести ответ для будущих гуглеров.

Мой networkImageView вышел из области видимости и был ARC'd.Забавно, я думал, что спас его, но этот код был частично закомментирован!

...