我的目的是尝试通过以下成功的块获取下载图像的大小:
[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'
是否有人知道此错误的原因。如果您有任何想法,请提供帮助
答案 0 :(得分:15)
错误告诉您cachePolicy
对象正在调用NSURLRequest
(NSURL
方法)。
问题是您传入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
并传递它,看看它是否正常工作