Objective-C のブロックに関する私の質問: 次の状況を想定します (ARC が有効になっている場合):
typedef NSString*(^MyBlockType)();
typedef NSString*(^MyReturnBlockType)(MyBlockType);
- (MyReturnBlockType) foo: (MyBlockType) block
{
return ^NSString*(MyBlockType someBlock) {
return someBlock();
};
}
block
メソッドが受け取るパラメーターは、メソッドfoo:
が返すブロック内で使用されます。しかし、誰が強い参照を保持していblock
ますか? foo:
ブロックを返す前にブロックをコピーする必要がありますMyReturnBlockType
か? 任意の洞察をいただければ幸いです。