명령 줄에 매개 변수를 사용하거나 사용하지 않고 호출 할 내 코코아 응용 프로그램이 있습니다.코코아 응용 프로그램에서 명령 줄 매개 변수를 결정하는 경우
응용 프로그램에서받은 매개 변수를 통해 결정을 내리고 싶습니다. 즉, 특수 매개 변수가 수신 된 경우 해당 매개 변수에 대한 조치를 실행하고 싶습니다. 어쨌든이 일을하기 위해 있습니까?
건배
명령 줄에 매개 변수를 사용하거나 사용하지 않고 호출 할 내 코코아 응용 프로그램이 있습니다.코코아 응용 프로그램에서 명령 줄 매개 변수를 결정하는 경우
응용 프로그램에서받은 매개 변수를 통해 결정을 내리고 싶습니다. 즉, 특수 매개 변수가 수신 된 경우 해당 매개 변수에 대한 조치를 실행하고 싶습니다. 어쨌든이 일을하기 위해 있습니까?
건배
물론이 프로그램은 C 프로그램과 같은 main()
기능을 가지고 있습니다. 새로운 Cocoa 프로젝트에 기본으로 제공되는 기본값은 NSApplicationMain()
이지만, 원하는 경우 다른 작업을 수행 할 수 있습니다. 당신은 쉽게 다른 곳에 프로그램에서 명령 줄 정보에 액세스하려면
, 당신은 사용할 수 있습니다 _NSGetArgv()
, _NSGetArgc()
, _NSGetEnviron()
및 _NSGetProgname()
. 그들은 crt_externs.h
에 선언하고 있습니다 :
extern char ***_NSGetArgv(void);
extern int *_NSGetArgc(void);
extern char ***_NSGetEnviron(void);
extern char **_NSGetProgname(void);
가 여기에 이러한 기능에 대한 blog post하고 NSApplicationMain
documentation에 대한 링크를합니다.
당신은 쉽게 사용자 기본값에 NSArgumentDomain
에 액세스 할 찾을 수 있습니다 :이 양식 -NSZombieEnabled YES
의 인수를 처리 할
NSDictionary *const args = [[NSUserDefaults standardUserDefaults]
volatileDomainForName:NSArgumentDomain];
. 다른 형식의 인수 (예 : -NSZombieEnabled=YES
)는 무시할 수 있습니다. 나는 소스를 테스트하거나 보지 않았습니다.
+1 @ char를 반환하는 것이 처음이라고 생각합니다. –
@Dave CharPtrArrayPtr로서 더욱 의미가 있습니다. CharPtrArrayPtr은 여전히 한마디로 말하지만 Perlesque는 덜 보입니다. –
@Jeremy가 "문자열 배열에 대한 포인터"로 생각하면 이해할 수 있습니다. 나는 왜 그것이 단지'char **'tho를 반환하지 않는지에 대해 주로 혼란 스럽다 ... –