如何在Cocoa中读取环境变量?

loy*_*low 9 cocoa objective-c

我怎样才能读取用户设置的环境变量?

我是Mac(可可)桌面开发的新手,我正在构建一个可用于访问亚马逊s3服务的小工具.

我在.bash_profile中设置了我的环境变量,但无论用户输入的位置如何(.bashrc,.bash_profile或.profile等),我希望它能够正常工作.

use*_*019 18

查看NSProcessInfo 上的环境方法.它返回环境的NSDictionary,例如PATH

NSString* path = [[[NSProcessInfo processInfo]environment]objectForKey:@"PATH"];
Run Code Online (Sandbox Code Playgroud)


Rad*_*lin 5

您可以使用GNU库中的C API http://www.gnu.org/software/libc/manual/html_node/Environment-Access.html#Environment-Access

转换为NSString:现代obj-c:

NSString *envVarString = @(getenv("__MY_ENV_NAME__"));
Run Code Online (Sandbox Code Playgroud)

遗产物品:

NSString *envVarString = [NSString stringWithUTF8String: getenv("__MY_ENV_NAME__")];
Run Code Online (Sandbox Code Playgroud)

  • `@(getenv("USER"))`似乎比`[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[ (5认同)