Я пытаюсь понять блоки. Я получаю, как использовать их обычно, когда передается непосредственно методу. Мне сейчас интересно взять блок, сохранить его (скажем) в переменной экземпляра и вызвать его позже.
Руководство по программированию блоков заставляет его звучать так, как я могу это сделать, используя Block_copy/сохранить, чтобы скопировать блок, но когда я пытаюсь запустить его, я разбиваю свою программу.
- (void) setupStoredBlock
{
int salt = 42;
m_storedBlock = ^(int incoming){ return 2 + incoming + salt; };
[m_storedBlock retain];
}
Я пытаюсь называть его позже:
- (void) runStoredBlock
{
int outputValue = m_storedBlock(5);
NSLog(@"When we ran our stored blockwe got back: %d", outputValue);
[m_storedBlock release];
}
У кого-нибудь есть идеи? (Или, что-то я не получаю с блоками?)
Большое спасибо!