1

我已经定义了一个这样的块:

void (^observerBlock) (id aTrigger, id aContext, void(^aTriggerCallbackBlock)(id aTContext)) = ....

现在我想把它放入一个 NSOperationQueue 并同时执行。但是 NSOperationQueue 的实例方法addOperationWithBlock:只允许这样的参数:(void (^)(void))block.

如何将具有多个参数的块放入 NSOperationQueue?谢谢。

4

1 回答 1

1

一种方法是对这些NSOperationNSBlockOperation类进行子类化以创建一个专门的操作类,然后只需将所需的属性添加到子类中,而不是将值作为参数传递。

另一种方法是仅在块中引用您需要的变量,当创建块时,它将复制引用/值。如果您需要能够更改这些值,您可以在块内引用的变量上使用 __block。

于 2012-10-19T14:10:36.080 回答