7

私の目的は、以下のように成功したブロックを介してダウンロードされた画像のサイズを取得しようとすることです:

[imageView setImageWithURLRequest:[NSURL URLWithString:((ObjectA*)obj[indexPath.row]).imageUrl]
                placeholderImage:nil
                         success:^(NSURLRequest *request, NSHTTPURLResponse *response, UIImage *image) {
                            CGFloat imageHeight = image.size.height;
                            CGFloat imageWidth = image.size.width;
                            NSLog(@"width of image is %f",imageWidth);
                            NSLog(@"height of image is %f",imageHeight);
                        }
                        failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error) {
                            ;
                        }  ];

ただし、次のようなエラーが表示されてクラッシュします。

 *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSURL cachePolicy]: unrecognized selector sent to instance 0x1edb9e70'

このエラーの理由を知っている人はいますか。アイデアがあれば助けてください

4

3 に答える 3

15

エラーは、cachePolicy(NSURLRequestメソッドである) がオブジェクトで呼び出されていることを示していNSURLます。

NSURL問題は、オブジェクトではなく、オブジェクトを最初のパラメーターとして渡していることですNSURLRequest。(私はこのサードパーティ API に詳しくありませんが、ドキュメントはここにあるようです)

于 2013-01-03T17:09:36.010 に答える
12

問題はこのコードにあります:

[imageView setImageWithURLRequest:[NSURL URLWithString:((ObjectA*)obj[indexPath.row]).imageUrl]

のパラメータsetImageWithURLRequest:NSURLRequest、あなたが渡してNSURLいます。それがクラッシュしている理由です。

次のように変更します。

[imageViewsetImageWithURLRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:((ObjectA*)obj[indexPath.row]).imageUrl]]
于 2013-01-03T17:13:23.793 に答える
2

問題は最初の行にあると思います

[imageView setImageWithURLRequest:[NSURL URLWithString:imageUrl]

setImageWithURLRequestURLを渡しているのに、署名から「 URLRequest 」を期待しているように見えます。

でを作成しURLRequestURL渡し、動作するかどうかを確認します

于 2013-01-03T17:15:04.290 に答える