2013-02-16 2 views
0

Просто попробуйте сделать простой пример с NSOperationQueue & NSInvocationOperation. Вот мой код:Почему эти операции 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__); 
     } 
    } 
} 

Класс конкретизируется в основном, где runMethodsViaOperationQueue называется.

MyOperationTestingClass *instantiateIt = [[MyOperationTestingClass alloc] init]; 
[instantiateIt runMethodsViaOperationQueue]; 

Вещь, когда runMethodsViaOperationQueue выполняет ничего не выходы, как я бы ожидать через NSLog. Может ли кто-нибудь помочь мне уточнить, почему это не работает?

ответ

0

Я действительно пытался экстраполировать на более чем один NSInvocationOperation, таким образом, создать массив NSInvocationOperations:

NSArray *iOps = [NSArray arrayWithObjects:logMethod1Invocation, logMethod2Invocation, nil]; 

Затем использовать этот массив с addOperations: WaitUntilFinished:

[thisQueue addOperations:iOps waitUntilFinished:YES]; 

При выполнении на выходе будет отображаться более одной резьбы -

2013-02-15 20:32:29.276 NSOperationTest[1060:1b03] -[MyOperationTestingClass logMethod1] --> logMethod1: 0 
2013-02-15 20:32:29.277 NSOperationTest[1060:1a03] -[MyOperationTestingClass logMethod2] --> logMethod2: 0 
2013-02-15 20:32:29.280 NSOperationTest[1060:1b03] -[MyOperationTestingClass logMethod1] --> logMethod1: 1 
2013-02-15 20:32:29.280 NSOperationTest[1060:1a03] -[MyOperationTestingClass logMethod2] --> logMethod2: 1 
Смежные вопросы