如何获取sendSynchronousRequest的进度信息?

问题描述:

我在第二个线程中调用了sendSynchronousRequest,而我的第二个线程将被阻塞,那么如何在我的第一个线程中获取进度信息?如何获取sendSynchronousRequest的进度信息?

您必须在第二个线程上使用asynchronous downloader。然后异步使用委托回调!

例如:

@protocol DownloadUIProtocol<NSObject> 
    - (void)updateUI:(id)sender; 
    @end 

    @interface ViewController() { 
     NSMutableData *receivedData_; 
     NSDate *lastUpdateUITime_; 
     __weak id<DownloadUIProtocol> delegate_; 
    } 
    @end 

    ... 

    - (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data { 
     [receivedData_ appendData:data]; 

     NSDate *now = [NSDate date]; 
     if (fabs([lastUpdateUITime_ timeIntervalSinceDate:now]) > 60) { 
     dispatch_async(dispatch_get_main_queue(), ^{ 
      if ([delegate_ respondsToSelector:@selector(updateUI:)]) 
      [delegate_ updateUI:self]; 
     }); 
     lastUpdateUITime_ = now; 
     } 
    }