ブロックを理解しようとしています。メソッドに直接渡されると、通常どおり使用する方法がわかりました。私は今、ブロックを取得し、それを (たとえば) インスタンス変数に格納し、後で呼び出すことに興味があります。
ブロック プログラミング ガイドでは、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];
}
誰にも洞察がありますか?(または、ブロックで得られないものはありますか?)
どうもありがとうございました!