【发布时间】:2011-06-21 05:14:26
【问题描述】:
我有一些代码基本上可以归结为:
-(void)doSomethingWithBlock:(BlockTypedef)block
{
[Foo doSomethingElseWithBlock:^() {
block();
}];
}
Foo doSomethingElseWithBlock: 在收到的块上调用 Block_copy 和 Block_release。这在外部范围是否也有必要,还是内部Block_copy 会处理这个?
【问题讨论】:
-
我的应用程序此时不是特别可运行,所以不能。我确实找到了这个:clang.llvm.org/docs/Block-ABI-Apple.txt 其中说“块可能包含块文字表达式。内部块中使用的任何变量都被导入所有封闭的块范围,即使这些变量没有被使用。这包括 const 导入以及 __block 变量。”但是,在这种情况下,它是一个包含块的块文字,而不是那里给出的顺序。
标签: objective-c cocoa objective-c-blocks