2012-05-02 7 views
2

私はAFNetworkingのUIImageViewカテゴリを使用していますが、レスポンスコードステータスにレスポンスコード0が常に表示されます。これがなぜなのか?私はそれをどうやってやっているのですか:AFNetworking UIImageView setImageWithURLRequestがレスポンスコード0を返す

[self.newsPicture_ setImageWithURLRequest:storyImageRequest 
             placeholderImage:nil 
                success:^(NSURLRequest * request, NSHTTPURLResponse * response, UIImage * image) { 
                 if ([response statusCode] == 200){ 
                  dispatch_async(dispatch_get_main_queue(), ^(void){ 

}); 
                 } else { 
                  NSLog(@"RESPONSE ERROR WITH CODE IS %d", [response statusCode]); 
                 } 
                }failure:^(NSURLRequest * request, NSHTTPURLResponse * response, NSError * error){ 
                 if (error){ 
                  NSLog(@"Error in requesting news story image"); 
                 } 
                }]; 

これはどうして起こっているのでしょうか?

これは、ブロックベースの関数呼び出しを使用している場合にのみ発生します。

私はsetImageWithURLを使用すると、すべてが

答えて

8

UIImageView+AFNetworkingは、スクロールビューとテーブルビューでパフォーマンスを最適化するために、内部キャッシュを使用して正常に動作します。レスポンスコードが0の場合は、HTTPリクエストを行わずにイメージがその内部キャッシュから出てきたことを意味します。 successでステータスコードが200であることを確認する必要はありません。これは、成功/失敗の区別がすでに行っているためです。

関連する問題