2012-04-24 83 views

回答

0

您必须在第二个线程上使用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; 
     } 
    }