0
2番目のスレッドでsendSynchronousRequestを呼び出し、2番目のスレッドがブロックされるので、最初のスレッドで進捗情報を取得する方法は?sendSynchronousRequestの進行状況を取得する方法は?
2番目のスレッドでsendSynchronousRequestを呼び出し、2番目のスレッドがブロックされるので、最初のスレッドで進捗情報を取得する方法は?sendSynchronousRequestの進行状況を取得する方法は?
2番目のスレッドで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;
}
}