사용목적 : 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) {
va_start(varglist, 가변인자); // 가변인자를 리스트형으로 변환
while((item = va_arg(varglist, 인자타입)) != nil) {
// 지정한 인자타입의 item을 사용
}
va_end(varglist); // 가변인자 종료
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 |