2013-05-04 29 views
5

我想在我的一個應用程序中設置tableview單元格圖像。我用AFNetworking (1.2.1),我用setImageWithURLRequest來做。AFNetworing - setImageWithURLRequest無效

我的代碼中,我設定的圖像看起來是這樣的:

if (user.avatar) { 
     NSString *imageUrl = user.avatar.url; 

     [cell.profileImage setImageWithURLRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:imageUrl]] placeholderImage:nil success:^(NSURLRequest *request, NSHTTPURLResponse *response, UIImage *image) { 
      [cell setNeedsLayout]; 
     } failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error) { 
      NSLog(@"Error: %@", error); 
     }]; 
    } 

我的錯誤日誌返回此:

Error: Error Domain=NSURLErrorDomain Code=-999 "The operation couldn’t be completed. (NSURLErrorDomain error -999.)" UserInfo=0x1f5b56a0 {NSErrorFailingURLKey=https://d2rfichhc2fb9n.cloudfront.net/image/5/Cf7T_BA6- NFGL5ah0w4hdvmk_Vp7InMiOiJzMyIsImIiOiJhZG4tdXNlci1hc3NldHMiLCJrIjoiYXNzZXRzL3VzZXIvZTIvM2MvMjA vZTIzYzIwMDAwMDAwMDAwMC5qcGciLCJvIjoiIn0} 

,影像不到風度置位。在更新至AFNetworking (1.2.1)之前,我沒有這個問題。有任何想法嗎?

更新

試圖從這樣的網址中去除空白:

NSString *imageUrl = [user.avatar.url stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]; 

,但我得到了同樣的錯誤。如果API有時候會包含一個包含空格的圖像文件名,這可能會很危險。

回答

20

我看到三個問題:

  1. -999意味着NSURLErrorCancelled,所以它看起來像URLRequest被莫名其妙地取消了。你的代碼在哪裏?是否有可能過早釋放了cell對象或UIImageViewprofileImage

  2. 如果您正在定義成功塊,AFNetworking的更新版本要求您自己設置圖像。

  3. 確保該URL有效。

(放置在tableView:cellForRowAtIndexPath:當作品)試試這個:

__weak UITableViewCell *weakCell = cell; 
[cell.imageView setImageWithURLRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:imageUrl]] placeholderImage:nil success:^(NSURLRequest *request, NSHTTPURLResponse *response, UIImage *image) { 
    if (weakCell) 
    { 
     weakCell.imageView.image = image; 
     [weakCell setNeedsLayout]; 
    } 
} failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error) { 
    NSLog(@"Error: %@", error); 
}]; 
+1

謝謝,這工作!將它移動到'tableView:cellForRowAtIndexPath'。 – Anders 2013-05-04 08:25:18

+0

你的答案拯救了我的一天....謝謝.... – Manoj 2014-09-26 10:22:10

+0

這段代碼是否創建了保留週期?我敢肯定塊會保留單元格,但是單元格保留塊嗎? – 2015-05-06 11:06:08

4

似乎有一些額外的空間,在您的網址

您的網址是https://d2rfichhc2fb9n.cloudfront.net/image/5/Cf7T_BA6- NFGL5ah0w4hdvmk_Vp7InMiOiJzMyIsImIiOiJhZG4tdXNlci1hc3NldHMiLCJrIjoiYXNzZXRzL3VzZXIvZTIvM2MvMjA vZTIzYzIwMDAwMDAwMDAwMC5qcGciLCJvIjoiIn0

Url Without Space

由於額外空間的圖片網址是無效的,它沒有得到牽強。

編輯

NSString *strCorrectUrl = [user.avatar.url stringByReplacingOccurrencesOfString:@" " 
           withString:@""]; 
+0

試圖剝去空白,但它並沒有幫助。查看更新的答案。 – Anders 2013-05-04 08:11:59

相關問題