Selector

iOS/Object C 2012.01.12 15:31
C 언어에서의 함수 포인터
 
SEL aSelector = @selector(update);

같은 동작함 
[self update];
[self performSelector:@selector(update)];
[self performSelector:aSelector];


코코아에서는 문자열을 Selector로 변환 하는 함수
SEL aSelector = NSSelectorFromString(@"update"); 

Selector를 문자열로 변환 하는 함수
NSString * aString = NSStringFromSelector(aSelector);


실행 가능 여부 판단
if ([self respondsToSelector:aSelector]){
  [self performSelector:aSelector];
}

지연 실행 가능, 특정 객체에 함수 실행 요청 가능 함수
-(void)performSelector:(SEL)aSelector withObject:(id)anArgument afterDelay:(NSTimeInterval)delay 

단, 지연실행시 NSRunLoop에 의해 동작됨.
요청 메시지가 늦게 호출될수도 있지만 빨리 호출되지는 않는 것은 보장됨.


performSelector 내부 구조

-(id) performSelector:(SEL)aSelector {
  IMP methodImplementation = [self methodForSelector:aSelector];
  return (*IMP)(self, aSelector);




 

'iOS > Object C' 카테고리의 다른 글

[펌] NSArray, NSDictionary 초기화  (0) 2014.09.26
Objective C 싱글톤  (0) 2012.01.26
Selector  (0) 2012.01.12
[펌] Object C 타입간 변환  (0) 2012.01.02
[펌] Objective-C 기초  (0) 2011.12.21
[펌] NSString & NSMutableString  (0) 2011.12.13
Posted by 까칠코더.


티스토리 툴바