【发布时间】:2013-02-16 01:54:42
【问题描述】:
只是想用 NSOperationQueue 和 NSInvocationOperation 做一个简单的例子。这是我的代码:
- (void) runMethodsViaOperationQueue {
NSOperationQueue *thisQueue = [[NSOperationQueue alloc] init];
NSInvocationOperation *logMethod1Invocation = [[NSInvocationOperation alloc]
initWithTarget:self
selector:@selector(logMethod1)
object:nil];
[thisQueue addOperation:logMethod1Invocation];
}
logMethod1 只是一个循环的 NSLog 语句,如:
- (void) logMethod1 {
for (int a = 0; a < 10; a++) {
NSLog(@"%s --> logMethod1: %i", __FUNCTION__, a);
if (a == 9) {
NSLog(@"%s --> ==================", __FUNCTION__);
}
}
}
该类在 main 中实例化,其中 runMethodsViaOperationQueue 被调用。
MyOperationTestingClass *instantiateIt = [[MyOperationTestingClass alloc] init];
[instantiateIt runMethodsViaOperationQueue];
事情是,当 runMethodsViaOperationQueue 没有像我期望的那样通过 NSLog 执行任何输出时。谁能帮我解释一下为什么这不起作用?
【问题讨论】:
标签: nsoperationqueue nsinvocationoperation