我正在尝试理解 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];
后一种形式可能吗?我可以将 block 转换为 NSOperation 吗?
提前谢谢
最佳答案
你可以:
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
对象指针.
关于ios - 有没有办法像这样向 NSOperationQueue 添加 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14282621/