出於某種原因,我希望有一個塊運行循環的下一次迭代過程中執行的,所以我想出了:ARC __bridge投Block_copy&Block_release
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] ;
}
- 是不是很諷刺的是,我有投給無效*參數爲 Block _copy?
- 爲什麼編譯器在Block_copy上阻塞 而我的Block_release沒有橋接void * cast?
的代碼似乎工作,我沒有發現泄漏,也沒有過早釋放,但我是一個有點語法困惑......
這是明確的答案。我也推薦@verec和主隊列一起使用dispatch_async。 – 2013-09-17 02:41:48