NSOperationQueue *opQueue = [[NSOperationQueue alloc] init];
NSInvocationOperation *task = [[NSInvocationOperation alloc] initWithTarget:self selector:@selector(sendChannelInfo:) object:chnURL];
[opQueue addOperation:task];
[task release];
在线程中我们要实现方法sendChannelInfo的方法,如下是方法的实现
-(void) sendChannelInfo:(NSString*) chnnalURL
{
Asynchronism *syn = [[Asynchronism alloc] initWithDelegate:self];
[syn loadDataFromURL:url];
[syn release];
}
这样调用方法逐步执行可以执行到loadDataFromURL方法中,但是实现不了其中的delegate的方法。
(因为我在主线程中调用的sendChannelInfo的方法,然而又在子线程中实现delegate的方法,所以无法完成线程中的通信)
后面要把方法的实现放到主线程中delegate的方法就能实现了
如下:
-(void) sendChannelInfo:(NSString*) chnnalURL
{
Asynchronism *syn = [[Asynchronism alloc] initWithDelegate:self];
if (url)
[syn performSelectorOnMainThread:@selector(loadDataFromURL:) withObject:url waitUntilDone:NO];
[syn release];
}