主题:
网络返回数据处理模块(输入、输出)
概要:
网络结束后的数据处理。
- 位置:
AFURLResponseSerialization.m
核心:
数据解析。
1. 初始化:
- 默认解析Json格式
//AFHTTPSessionManager.m p85
self.responseSerializer = [AFJSONResponseSerializer serializer];
2. 当网络返回数据时,入口:
// AFURLSessionManager.m p217
#pragma mark - NSURLSessionTaskDelegate
- (void)URLSession:(__unused NSURLSession *)session
task:(NSURLSessionTask *)task
didCompleteWithError:(NSError *)error
{
>>>>>
NSError *serializationError = nil;
responseObject = [manager.responseSerializer responseObjectForResponse:task.response data:data error:&serializationError];
>>>>>
}
通过如下方法对Json数据进行解析:
responseObject = [NSJSONSerialization JSONObjectWithData:data options:self.readingOptions error:&serializationError];
//AFURLResponseSerialization.m p235
#pragma mark - AFURLResponseSerialization
- (id)responseObjectForResponse:(NSURLResponse *)response
data:(NSData *)data
error:(NSError *__autoreleasing *)error
{
>>>>>
BOOL isSpace = [data isEqualToData:[NSData dataWithBytes:" " length:1]];
if (data.length > 0 && !isSpace) {
responseObject = [NSJSONSerialization JSONObjectWithData:data options:self.readingOptions error:&serializationError];
} else {
return nil;
}
>>>>>
}
网友评论