2012-10-24 4 views
3
void (^block)(); 
void (^block1)(int); 

첫 번째 라인은 블록을 선언합니다.블록을 인수로 허용하는 블록 만들기

두 번째 줄은 정수 인수를 사용하는 블록을 선언합니다. 내가 그렇게 할 것입니다 방법

void (^block2)(<another block>); 

:

는 지금은 인수로 다른 블록을 받아 블록을 줄까?

답변

8

typedef를 사용하십시오.

typedef void (^BlockTypeToAccept)(); 
void (^block)(BlockTypeToAccept inner_block); 

또는 직접 결합 : 매우 명확한

void (^block)(void (^inner_block)()); 
+0

합니다. typedef void (^ BlockTypeToAccept)(); . 내 말은, 우리는 일반적으로 typedef double CGFloat;을 사용합니다. 이제 정의되는 유형이 맨 오른쪽에도 없습니다. 그래서 혼란 스럽습니다. –

+0

@HaryantoCiu : 'typedef'는 http://stackoverflow.com/questions/4295432/typedef-function-pointer와 동일합니다. – kennytm

관련 문제