Есть способ добавить блоки к 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?
спасибо заранее
Ответы
Ответ 1
Вы можете:
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
по какой-либо другой причине (например, для установления зависимостей между операциями и т.д.).
Ответ 2
Вы также можете сделать
[operationQueue addOperationWithBlock:^{
// Stuff
})];
Ответ 3
Swift
let networkingOperation = NSBlockOperation(block: {
// Your code here
})