0

用 addOperationWithBlock 包装方法调用和用 addOperationWithBlock 包装整个方法实现有什么区别?

假设我有一个名为 foo 的方法。

有没有区别

- (void) foo{
             [NSOperation mainQueue] addOperationWithBlock:^{
                                     some code
             }];
         }

[NSOperation mainQueue] addOperationWithBlock:^{
                                                [self foo];
}];
4

1 回答 1

0

不同之处在于,在第一种情况下,方法 foo 将始终在mainQueue(即使从不同的线程调用)上执行,而在第二种情况下,在正确的线程上执行它的责任委托给调用该方法的人。

如果在某些情况下您可能不想foo在主线程上执行,那么不要选择第一个选项。另一方面,如果 foo总是应该在主线程上执行(即 UI 操作),那么第一个代码片段就是要走的路。

于 2013-09-24T14:34:22.930 回答