2012-07-18 3 views
8

사용자가 설정 한 환경 변수를 어떻게 읽을 수 있습니까?코코아에서 환경 변수를 읽으려면 어떻게해야합니까?

저는 Mac (코코아)에서 데스크톱 개발을 처음 사용하고 있으며 아마존의 s3 서비스에 액세스하는 데 사용할 수있는 작은 도구를 만들고 있습니다.

환경 변수를 .bash_profile에 설정했지만 사용자가 입력 한 위치 (.bashrc, .bash_profile 또는 .profile 등)에 관계없이이 환경 변수를 사용하고 싶습니다.

+2

'.bash_profile','.bashrc' 등에서 환경 변수를 설정하면 GUI 응용 프로그램에서 액세스 할 수 없습니다. 이러한 파일은 CLI에 대한 환경 변수 만 저장하므로 환경 변수는 GUI 응용 프로그램에서 읽을 수 있도록 다른 곳에 저장해야합니다. http://stackoverflow.com/questions/135688/setting-environment-variables-in-os-x를 참조하십시오. 사용자에게 정보를 다시 입력하고 키 체인 또는 환경 설정에 적절하게 저장하도록 요청하는 것이 더 쉬울 수도 있습니다 . –

답변

17

봐 NSProcessInfo의 environment 메서드에서. 환경의 NSDictionary를 반환합니다. PATH에 대한

NSString* path = [[[NSProcessInfo processInfo]environment]objectForKey:@"PATH"]; 
5

당신은있는 NSString으로 변환 GNU 라이브러리 http://www.gnu.org/software/libc/manual/html_node/Environment-Access.html#Environment-Access

에서 C API를 사용할 수 있습니다 현대 OBJ-C :

NSString *envVarString = @(getenv("__MY_ENV_NAME__")); 

기존의 OBJ-C :

NSString *envVarString = [NSString stringWithUTF8String: getenv("__MY_ENV_NAME__")]; 
+0

OSX는 이들 모두를 제공합니다. – Mark

+0

에 관계없이 유효한 접근 방식입니다. – Patrick

+1

@Patrick 및 필요한 코드보다 더 복잡한 코드 검토에 실패합니다. – Mark

관련 문제