есть ли способ добавить блоки в NSOperationQueue, как это
Я пытаюсь понять NSOperationQueue и пытаюсь создать самый простой пример из возможных. У меня есть следующее:
NSOperationQueue *myOQ=[[NSOperationQueue alloc] init];
[myOQ addOperationWithBlock:^(void){
NSLog(@"here is something for jt 2");
}];
[myOQ addOperationWithBlock:^(void){
NSLog(@"oh is this going to work 2");
}];
Но хотелось бы сделать вот что:
void (^jt)() = ^void(){
NSLog(@"here is something for jt");
};
void (^cl)() = ^void(){
NSLog(@"oh is this going to work");
};
NSOperationQueue *myOQ=[[NSOperationQueue alloc] init];
[myOQ addOperation:jt];
[myOQ addOperation:cl];
Возможна ли эта последняя форма? Можно ли преобразовать блок в NSOperation?
Thx заранее
3 ответа:
Вы могли бы:
NSBlockOperation *jtOperation = [NSBlockOperation blockOperationWithBlock:^{ NSLog(@"here is something for jt"); }]; NSBlockOperation *clOperation = [NSBlockOperation blockOperationWithBlock:^{ NSLog(@"oh is this going to work"); }]; [myOQ addOperation:jtOperation]; [myOQ addOperation:clOperation];
Сказав это, я обычно делаю
addOperationWithBlock
, если мне действительно не нужны указатели объектовNSOperation
по какой-то другой причине (например, для установления зависимостей между операциями и т. д.).