2010-07-09 25 views
1

這是一個非常簡單的問題。我在Cocoa應用程序所在的文件夾中有一個腳本。我似乎無法正確設置setLaunchPathNSTask的路徑。請幫助。NSTask setLaunchPath Objective-C Cocca

我有一個名爲Project的文件夾。在裏面,存在多個文件夾,但只有兩個我們關心:Classes(Cocoa應用程序的源文件在這裏)和Ruby(這是一個紅寶石服務器文件夾)。我正在嘗試撥打Ruby/script/server。我認爲這將是類似或Ruby/script/server,但都是錯誤的。

謝謝。

編輯:我想我實際要問的是如果有一種方法可以通過使用特殊字符或快捷方式訪問源文件或項目所在的文件夾,因爲默認情況下它會轉到/tmp文件夾。

回答

3

應用程序中的當前目錄(在unix意義上)不保證是任何東西。到應用程序本身的路徑可以通過獲取主要的應用程序包的

NSBundle*mainBundle=[NSBundle mainBundle]; 

獲得,然後獲取其路徑

NSString*path=[mainBundle bundlePath]; 

然而請不要做;如果沒有額外的指示將文件放在這裏或那裏,您將無法分發您的應用。相反,把你的Ruby代碼放在yourApp.app/Contents/Resources/之內。這可以通過將Ruby代碼包含在XCode中來完成,並確保將其設置爲複製到應用程序中。這Resources目錄內的文件可以按如下方式獲得:

NSString*path=[mainBundle pathForResource:@"rubyServer" ofType:@"rb"]; 

要了解更多關於光纖束結構,閱讀Bundle Programming Guide

+0

非常感謝! – hassaanm 2010-07-09 17:10:29