[英]NSTask setLaunchPath Objective-C Cocca
这是一个非常简单的问题。 我在与Cocoa应用程序相同的文件夹中有一个脚本。 我似乎无法为setLaunchPath
的NSTask
正确设置路径。 请帮助。
我有一个名为Project的文件夹。 在其中,存在多个文件夹,但我们只关心两个文件夹: Classes
(可可应用的源文件在这里)和Ruby(这是ruby服务器文件夹)。 我正在尝试调用Ruby/script/server
。 我以为它会是./Ruby/script/server
或Ruby/script/server
但是两者都是错误的。
谢谢。
编辑:我想我实际上要问的是是否有一种方法可以通过使用特殊字符或快捷方式来访问源文件或项目所在的文件夹,因为默认情况下它将进入/tmp
文件夹。
应用程序中的当前目录(就Unix而言)不能保证为任何目录。 可以通过以下方式获取主应用程序捆绑包,以获取应用程序本身的路径:
NSBundle*mainBundle=[NSBundle mainBundle];
然后得到它的路
NSString*path=[mainBundle bundlePath];
但是请不要那样做。 如果没有额外的文件放置说明,您将无法分发您的应用程序。 而是将您的Ruby代码放入yourApp.app/Contents/Resources/
。 这可以通过在XCode中包含Ruby代码并确保将其设置为复制到应用程序中来完成。 可以按以下方式获取此Resources
目录中的文件:
NSString*path=[mainBundle pathForResource:@"rubyServer" ofType:@"rb"];
要了解有关包结构的更多信息,请阅读《 包编程指南》 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.