실은 Snow Leopard 10.6에서 처음 추가된 녀석인데, 당시 대부분의 시간을 iPhone OS(당시는 이 이름이었죠. 2.2시절이었음...)에 쓰느라 별로 눈여겨 보지 않았던 부분이었죠. 4에서부터는 iOS에서도 지원되기에 관심을 두고 써보니, 확실히 내가 왜 이걸 이렇게 하고 있을까(당연하지, 3.2까지는 지원 안되니)...하는 병맛나는 노가다 코딩을 조금이나마 줄여주는 좋은 업그레이드입니다.
말은 '좋은 업그레이드'라 했지만, 훨씬 전부터 지원했어야 되지 않나...싶은 부분이기도 하지요. 그 오랜세월 병맛나는 복사/붙이기/리팩토링 등등의 뻘짓을 시켜왔으니...
block구문의 장점은:
- 딱 한번 불리고 말 콜백 함수 등의 코딩을 조금이나마 덜 지저분하게 할 수 있다. 특히 개인적으로는 View나 Layer가 사라질 때 정리용 콜백으로 쓸만하더군요.
- 좀 더 빠를지도(...이건 상황에 따라 다를 것). 일반적으로 block은 스택영역에서 시작하니까.
- 꽤 많은 수의 API들이 block을 요구한다....특히, 멀티 쓰레딩/Grand Central Dispatch에선 필수. 각종 Cocoa Collection Object들의 enumeration도 block을 쓰면 좀 더 Ruby스럽게 볼만한 코드가 나오고, 멀티 코어의 장점을 좀 더 쉽게 활용 가능.
block과 GCD에 대한 간단한 내용을 계속해서 써보기로 하지요.
'Apple의 세계에서 삽질 > Objective-C로 삽질' 카테고리의 다른 글
block에 대한 매우매우 기본적인 소개 (4) | 2010.09.18 |
---|---|
retain/release 지옥 (0) | 2010.09.17 |