12 cocoa objective-c objective-c-blocks
我有一些代码基本上归结为这个:
-(void)doSomethingWithBlock:(BlockTypedef)block
{
[Foo doSomethingElseWithBlock:^() {
block();
}];
}
Run Code Online (Sandbox Code Playgroud)
Foo doSomethingElseWithBlock:调用Block_copy以及Block_release它收到的块.这在外部范围内是否也是必要的,或者内部Block_copy处理这个吗?
我引用Apple开发者文档站点上的Blocks Programming Topics指南:
复制块时,如有必要,将复制对该块中其他块的任何引用 - 可以复制整个树(从顶部开始).如果您有块变量并且您从块中引用块,则将复制该块.
复制基于堆栈的块时,会得到一个新块.但是,如果复制基于堆的块,则只需增加该块的保留计数,并将其作为复制函数或方法的返回值返回.
| 归档时间: |
|
| 查看次数: |
2184 次 |
| 最近记录: |