使用addOperationWithBlock包装方法调用和使用addOperationWithBlock包装整个方法实现之间的区别是什么?
假设我有一个名为foo的方法。
之间有什么区别吗?
- (void) foo{
[NSOperation mainQueue] addOperationWithBlock:^{
some code
}];
}
和
[NSOperation mainQueue] addOperationWithBlock:^{
[self foo];
}];
答案 0 :(得分:0)
不同之处在于,在第一种情况下,方法foo将始终在mainQueue
上执行(即使从不同的线程调用),而在第二种情况下,在右侧线程上执行它的责任是委托给任何调用该方法的人。
如果您可能不希望foo
在主线程上执行,那么请不要选择第一个选项。另一方面,如果foo 总是应该在主线程上执行(即UI操作),那么第一个代码片段就是可行的方法。