【发布时间】:2012-03-14 12:24:26
【问题描述】:
出于某种原因,我希望在运行循环的下一次迭代期间执行一个块,所以我想出了:
typedef void (^resizer_t)() ;
- (void) applyResizer: (resizer_t) resizer {
resizer() ;
Block_release(resizer) ;
}
- (void) usage {
...
resizer_t resizer = ^() {
// stuff
} ;
[self performSelectorOnMainThread:@selector(applyResizer:)
withObject:(__bridge id) Block_copy((__bridge void *) resizer)
waitUntilDone:NO] ;
}
- 我必须强制转换为 void * 的论点,这不是很讽刺吗? 阻止_复制?
- 为什么编译器在阻塞时对我的 Block_release 感到满意 在没有桥 void * cast 的 Block_copy 上?
代码似乎可以工作,我没有检测到泄漏或过早发布,但我对语法有点困惑......
【问题讨论】:
标签: objective-c ios automatic-ref-counting