直接从 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 3.0 未从响应中获取 json

通过 AFNetworking 从服务器获取 Json 响应

通过 Afnetworking 2.0 从 URL 获取一半大小的 UIImage

从 AFNetworking 获取非 json 内容