2012-07-18 14 views
8

Kullanıcının ayarladığı bir çevresel değişkeni nasıl okuyabilirim?Kakao'da bir çevresel değişkeni nasıl okuyabilirim?

Mac'te (kakao) masaüstü geliştirme konusunda yeniyim ve amazon'un s3 hizmetine erişmek için kullanabileceğim küçük bir araç yapıyorum.

Çevresel değişkenlerimi .bash_profile sayfamda ayarlıyorum, ancak kullanıcının girdiği yeri (.bashrc, .bash_profile veya .profile vb.) Dikkate almadan çalışmasını istiyorum.

+2

Eğer '.bash_profile',' .bashrc' vb. bir ortam değişkeni ayarlarsanız, GUI uygulamasından erişilemez. Bu dosyalar sadece CLI için ortam değişkenlerini saklar, eğer GUI uygulamaları tarafından okunabilmesini istiyorsanız, ortam değişkenlerini başka bir yerde saklamanız gerekir. Http://stackoverflow.com/questions/135688/setting-environment-variables-in-os-x adresine bakın. Sadece kullanıcıdan bilgileri tekrar girmesini istemek ve anahtarlığa veya tercihlere uygun şekilde saklamak daha kolay olabilir. . –

cevap

17

bak NSProcessInfo üzerinde environment yönteminde. Ortamın bir NSDictionary değerini döndürür, örn. PATL

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

Sen NSString dönüştürmek GNU kütüphanesinde http://www.gnu.org/software/libc/manual/html_node/Environment-Access.html#Environment-Access

bir C API kullanabilirsiniz: Modern obj-c:

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

eski obj-c:

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

OSX bunların hepsini sizin için tamamlanmış olarak sağlar – Mark

+0

Yine de geçerli bir yaklaşımdır. – Patrick

+1

@Patrick ve gerekenden daha karmaşık olması için herhangi bir kod incelemesi başarısız olurdu – Mark

İlgili konular