2012-07-18 15 views
8

Jak mogę odczytać zmienną środowiskową ustawioną przez użytkownika?Jak mogę odczytać zmienną środowiskową w kakao?

Jestem nowy w rozwoju komputerów osobistych na komputerach Mac (kakao) i buduję małe narzędzie, dzięki któremu mogę uzyskać dostęp do usługi amazon s3.

Ustawiam zmienne środowiskowe w moim pliku .bash_profile, ale chcę, aby działało niezależnie od miejsca, w którym użytkownik je wprowadził (.bashrc, .bash_profile lub .profile itd.).

+2

Jeśli ustawisz zmienną środowiskową w '.bash_profile',' .bashrc', itp. nie będzie ona dostępna z aplikacji GUI. Pliki te przechowują zmienne środowiskowe tylko dla CLI, należy przechowywać zmienne środowiskowe w innym miejscu, jeśli mają być odczytywalne przez aplikacje GUI. Zobacz http://stackoverflow.com/questions/135688/setting-environment-variables-in-os-x To może być łatwiejsze po prostu poprosić użytkownika o ponowne wprowadzenie informacji i zapisanie jej w pęku kluczy lub w preferencjach odpowiednio do potrzeb. . –

Odpowiedz

17

Look przy metodzie environment na NSProcessInfo. Zwraca NSDictionary środowiska, więc np. dla PATH

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

Można używać C API z biblioteki GNU http://www.gnu.org/software/libc/manual/html_node/Environment-Access.html#Environment-Access

Konwersja do NSString: nowoczesne obj-c:

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

starszego obj-c:

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

OSX zapewnia wszystko opakowane dla ciebie – Mark

+0

Bez względu na to, jest to prawidłowe podejście. – Patrick

+1

@Patrick i nie powiedzie się żaden przegląd kodu, ponieważ jest bardziej skomplikowany niż jest to konieczne – Mark

Powiązane problemy