2013년 4월 13일 토요일

NSArray의 모든 Object들에서 같은 메세지를 보내는 방법.

NSArray의 모든 Object들에게 한번에 같은 메세지를 보낼 수 있는데 makeObjectsPerformSelector를 이용하면 된다.
이 함수는 잘 만 이용하면 아주 유용하게 사용할 수 있다.
예를 들어서 ScrollView의 subview들을 한번에 모두 제거한다든가 하는 작업이 가능하다.
단, 조건이 있는데 selector에 들어갈 메세지는 argument가 없는 함수만 가능하다. (명심할 것)

예제1)
UIScrollView의 subview들을 한번에 제거
[[myScrollView subviews] makeObjectsPerformSelector:@selector(removeFromSuperview)];

예제2)
IB에서 collection으로 묶인 UIButton들 한방에 unselect
xx.h

@property (retain, nonatomic) IBOutletCollection(UIButton) NSArray *allButtons;

xx.m

[_allButtons makeObjectsPerformSelector:@selector(setSelected:) withObject:NO];


댓글 없음:

댓글 쓰기