2010-09-16 2 views

답변

4

, 가장 큰 부분. 블록은 종류 - C 함수는 주변 범위에서 변수를 캡처 할 수있는 객체처럼 종류 -과 같이 취급됩니다. 익명의 함수는 블록과 동일하지만 블록의 복잡한 기계 때문에 복잡하지는 않습니다.

예를 들어, 블록을 정의한 함수/메소드가 더 이상 활성화되지 않는 블록을 사용할 계획이라면 블록을 속성으로 설정하거나 GCD (다중 - 코어 운영 대기열 라이브러리), Block_copy() (또는 [aBlock copy])으로 복사해야합니다. 세부 사항은 다루지 않겠지 만, JS (익명) 기능을 사용하는 것은 아닙니다. 블록 리터럴이 스택 (코드의 어딘가가 아닌)에 할당되고 계속 유지하려면 힙에 복사해야한다는 사실과 관련이 있습니다.

상당히 복잡 할 수 있지만 디자인면에서는 매우 아름답습니다. 그러나 대부분의 경우에는 다소 쉽지만 익명의 JS 함수처럼 취급 할 수 있습니다. ;-)

3

예. Objective-C의 블록은 클로저입니다.