사용목적 : printf와 같이 동일 객체 받아들일 수 있는 가변 인수를 생성할때

메소드 정의

@interface 클래스명
- (반환타입) 메소드명 : (인자 타입)가변인자명, ... NS_REQUIRES_NIL_TERMINATION;
@end


NS_REQUIRES_NIL_TERMINATION
-> 가변 인수의 마지막에 NULL이나 nil을 두어 인수의 끝을 표시, NULL을 입력 못할 경우 오작동
-> 함수의 프로토타입 선언 끝에 매크로를 기술하여 이런 잠재 위험에 대처


메소드 구현

@implementation 클래스명
-(반환타입) 메소드명 : 가변인자, ...
{
va_list varglist;       // 가변인자를 리스트 형으로 받을 임시 객체

va_start(varglist, 가변인자);   // 가변인자를 리스트형으로 변환

while((item = va_arg(varglist, 인자타입)) != nil) {
// 지정한 인자타입의 item을 사용
}

va_end(varglist);   // 가변인자 종료
}
@end


'iOS' 카테고리의 다른 글

NSNotificationCenter  (0) 2011.01.05
NSSearchPathForDirectoriesInDomains  (0) 2011.01.05
Reachability & SCNetworkReachability  (0) 2011.01.04
NSUserDefaults  (0) 2011.01.04
IPhon Welcome Image  (0) 2011.01.04

+ Recent posts