直接从 AFNetworking 获取 NSData,而不是让它转换为 UIImage
Posted
技术标签:
【中文标题】直接从 AFNetworking 获取 NSData,而不是让它转换为 UIImage【英文标题】:Get NSData straight from AFNetworking, rather than letting it convert to UIImage 【发布时间】:2014-07-15 22:17:21 【问题描述】:是否有一个标志可以让我获取 NSData,而不是让 AFNetworking 将我的 responseData 转换为相应的数据类型(UIImage、NSString)?
【问题讨论】:
这可以做到,但是你是如何获取图像的?您使用的是 UIKit 扩展,还是 AFHTTPRequestOperationManager/AFHTTPRequestOperation? AFHTTPRequestOperationManager 【参考方案1】:AFHTTPResponseSerializer
将返回原始的NSData
:
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
manager.responseSerializer = [AFHTTPResponseSerializer serializer];
[manager GET:... parameters:...
success:^(AFHTTPRequestOperation *operation, NSData *responseObject)
failure:...];
【讨论】:
【参考方案2】:AFN 中的 responseData 表示 (id) - AnyObject。
您可以创建另一个对象。例如 NSMutableArray。
比制作myArray = responseObject;
- 例如
【讨论】:
我知道我可以将它转换成任何东西,但这不会改变对象的实际数据。 没有。您将获得相同的数据。刚刚转换成你需要的 所以这对我没有帮助 UIImage *image = [[UIImage alloc] init]; NSData *data = (NSData *)image; // data 会让我调用 NSData 上的方法,但是如果你在控制台中查看 data 实际上是一个 UIImage。如果我调用 UIImage 上不存在的数据的方法,我会得到一个异常。 使用 UIImage *image = [[UIImage alloc] initWithData:data];以上是关于直接从 AFNetworking 获取 NSData,而不是让它转换为 UIImage的主要内容,如果未能解决你的问题,请参考以下文章
AFNetworking:无法从 AFHTTPRequestOperation 获取响应字符串
如何直接从 iPad 应用程序使用 AFNetworking 上传图像
通过 AFNetworking 从服务器获取 Json 响应