我需要在从Finder启动时为我的应用程序设置一个环境变量。它是目录的位置。该路径相对于$ HOME。我正在使用Info.plist文件来设置此环境变量。但是,我不能把它带到$ HOME或〜。可以这样做吗?
即。我想要这样的东西:
MYAPPDIR =〜/ myappname
是的,我正在使用.plist编辑器。它确实有效,即我的应用程序找到它,如果我硬编码这样的完整路径:
MYAPPDIR = /用户/ MYNAME / myappname
答案 0 :(得分:0)
为什么你需要这样做?如果您确实想在应用中设置环境变量,请执行以下操作:
NSString* expanded=[@"~/myappname" stringByExpandingTildeInPath];
setenv("MYAPPDIR",[expanded UTF8String],1);
如果你真的想设置环境变量,请忽略以下咆哮。
但是,永远不会强迫用户将您的应用放在某个目录中。
此外,永远不会将文件保存在用户可见的非用户可配置位置。
在OS X中,应用程序被制作成.app
个包,以便用户可以自由移动它。
如果您需要获取应用的当前位置,请使用
NSString*appPath=[[NSBundle mainBundle] bundlePath];
如果您想在某个地方保存一个大文件,请在~/Library/Application Support/
内创建一个名为
~/Library/Application Support/yourappname/
并保存文件。如果您只需要保存一些数据,请使用NSUserDefaults。它会自动将数据保存到
~/Library/Preferences/com.yourcompany.yourapp.plist
并在再次启动应用时重新加载内容。只是做
[[NSUserDefaults standardUserDefaults] setObject:@"boo" forKey:@"bar"];
并在您的应用重新启动后使用
检索NSString* boo=[[NSUserDefaults standardUserDefaults] stringForKey:@"bar"];
等