ARC __bridge cast 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] ;
}
Разве это не иронично, что я должен отменить * аргументблок_copy?Почему компилятор доволен моим Block_release, когда он задыхается от Block_copy без моста void * cast?Код работает, я не обнаружил ни утечки, ни преждевременного выпуска, но я немного озадачен синтаксисом ...