我试图理解块。当直接传递给方法时,我知道如何正常使用它们。我现在有兴趣获取一个块,将它(例如)存储在一个实例变量中并稍后调用它。
块编程指南听起来我可以做到这一点,通过使用 Block_copy / retain 复制块,但是当我尝试运行它时,我的程序崩溃了。
- (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];
}
有人有任何见解吗?(或者,有什么我没有得到的东西吗?)
非常感谢你!