NSOperationQueue 多线程

时间:2023-03-08 19:11:55

staticNSOperationQueue * queue;

- (void)viewDidLoad

{

  [superviewDidLoad];

  queue = [[NSOperationQueuealloc] init];

 NSInvocationOperation * op = [[NSInvocationOperationalloc] initWithTarget:selfselector:@selector(download) object:nil];

 [queueaddOperation:op];

}

- (void)download {

NSURL * url = [NSURLURLWithString:@"http://www.youdao.com"];

NSError * error;

NSString * data = [NSStringstringWithContentsOfURL:url encoding:NSUTF8StringEncodingerror:&error];

if (data != nil) {

[selfperformSelectorOnMainThread:@selector(download_completed:) withObject:data waitUntilDone:NO];

} else {

NSLog(@"error when download:%@", error);

queue = nil;

}

}

- (void) download_completed:(NSString *) data {

NSLog(@"call back");

self->contentLabel.text = data;

queue = nil;

}