2013-01-03 21 views
7

Mục đích của tôi đang cố gắng để có được kích thước của hình ảnh tải về thông qua các khối thành công như dưới đây:nhận [NSURL cachePolicy]: chọn không được công nhận gửi đến dụ trong tải một hình ảnh, 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) { 
          ; 
         } ]; 

Tuy nhiên, tôi gặp sự cố với lỗi được hiển thị như bên dưới:

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

Có ai biết lý do cho lỗi này không. Vui lòng giúp đỡ nếu bạn có bất kỳ ý tưởng nào

+0

Một chút debug? Tôi khá chắc chắn nó không phải là đối tượng mà bạn nghĩ rằng nó được. –

+1

'[NSURL cachePolicy]' Từ nơi này được gọi là? –

Trả lời

15

Lỗi này cho bạn biết rằng cachePolicy (phương pháp NSURLRequest) đang được gọi trên đối tượng NSURL.

Vấn đề là bạn đang chuyển đối tượng NSURL làm tham số đầu tiên thay vì đối tượng NSURLRequest. (Tôi không quen thuộc với API bên thứ 3 này, nhưng các tài liệu dường như là here)

12

Issue là với mã này:

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

Các tham số của setImageWithURLRequest:NSURLRequest, bạn đang đi qua NSURL. Đó là lý do tại sao nó bị rơi.

Thay đổi nó để:

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

vẫn gặp sự cố? –

2

Tôi đoán vấn đề là trong dòng đầu tiên

[imageView setImageWithURLRequest:[NSURL URLWithString:imageUrl] 

setImageWithURLRequest từ chữ ký trông giống như mong đợi một "URLRequest" trong khi bạn đang đi qua một URL.

Vì vậy, tạo một URLRequest với URL và vượt qua nó và xem nếu nó đang làm việc

Các vấn đề liên quan