0
我在第二個線程中調用了sendSynchronousRequest,而我的第二個線程將被阻塞,那麼如何在我的第一個線程中獲取進度信息?如何獲取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;
}
}