美文网首页
AFNetworking __01 , AFN 的信息传递

AFNetworking __01 , AFN 的信息传递

作者: BoxDeng | 来源:发表于2017-12-12 23:36 被阅读0次

    系统的代理方法

    @interface AFURLSessionManagerTaskDelegate : NSObject <NSURLSessionTaskDelegate, NSURLSessionDataDelegate, NSURLSessionDownloadDelegate>
    

    KVO

    
    
    - (instancetype)initWithTask:(NSURLSessionTask *)task {
        self = [super init];
        if (!self) {
            return nil;
        }
        
        _mutableData = [NSMutableData data];
        _uploadProgress = [[NSProgress alloc] initWithParent:nil userInfo:nil];
        _downloadProgress = [[NSProgress alloc] initWithParent:nil userInfo:nil];
        
        __weak __typeof__(task) weakTask = task;
        for (NSProgress *progress in @[ _uploadProgress, _downloadProgress ])
        {
            progress.totalUnitCount = NSURLSessionTransferSizeUnknown;
            progress.cancellable = YES;
            progress.cancellationHandler = ^{
                [weakTask cancel];
            };
            progress.pausable = YES;
            progress.pausingHandler = ^{
                [weakTask suspend];
            };
            if ([progress respondsToSelector:@selector(setResumingHandler:)]) {
                progress.resumingHandler = ^{
                    [weakTask resume];
                };
            }
            [progress addObserver:self
                       forKeyPath:NSStringFromSelector(@selector(fractionCompleted))
                          options:NSKeyValueObservingOptionNew
                          context:NULL];
    ...
    

    相关文章

      网友评论

          本文标题:AFNetworking __01 , AFN 的信息传递

          本文链接:https://www.haomeiwen.com/subject/ugpoixtx.html