And*_*ers 5 cocoa-touch objective-c ios afnetworking
我想在我的一个应用程序中设置tableview单元格图像.我用AFNetworking (1.2.1),我用它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);
}];
}
Run Code Online (Sandbox Code Playgroud)
我的错误日志返回:
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}
Run Code Online (Sandbox Code Playgroud)
图像不能设置.在我更新之前我没有遇到这个问题AFNetworking (1.2.1).有任何想法吗?
更新
试图从网址中删除空格,如下所示:
NSString *imageUrl = [user.avatar.url stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
Run Code Online (Sandbox Code Playgroud)
但我得到了同样的错误.如果API某个时候包含一个包含空格的图像文件名,那么它可能会很危险.
And*_*Ley 20
我看到三个问题:
-999表示NSURLErrorCancelled,所以它似乎URLRequest以某种方式取消了.这个代码在哪里?是否有可能过早地释放cell物体或物体UIImageView profileImage?
如果您要定义成功块,则更新版本的AFNetworking要求您自己设置图像.
确保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);
}];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5599 次 |
| 最近记录: |