获取[NSURL cachePolicy]:在下载图像期间发送到实例的无法识别的选择器AFNetworking

时间:2013-01-03 17:02:27

标签: objective-c ios afnetworking

我的目的是尝试通过以下成功的块获取下载图像的大小:

[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'

是否有人知道此错误的原因。如果您有任何想法,请提供帮助

3 个答案:

答案 0 :(得分:15)

错误告诉您cachePolicy对象正在调用NSURLRequestNSURL方法)。

问题是您传入NSURL对象作为第一个参数而不是NSURLRequest对象。 (我不熟悉此第三方API,但文档似乎是here

答案 1 :(得分:12)

问题在于此代码:

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

setImageWithURLRequest:的参数为NSURLRequest,您正在传递NSURL。这就是它崩溃的原因。

将其更改为:

[imageViewsetImageWithURLRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:((ObjectA*)obj[indexPath.row]).imageUrl]]

答案 2 :(得分:2)

我猜问题出在第一行

[imageView setImageWithURLRequest:[NSURL URLWithString:imageUrl]
来自签名的

setImageWithURLRequest看起来像期待“ URLRequest ”,而您传递的是网址

所以使用URLRequest创建一个URL并传递它,看看它是否正常工作