2012-07-30 75 views
3

假設您要使用功能或與其他第三方應用程序進行交互。 是否有可能在一個Objective-C項目中與可執行文件鏈接? 二進制文件是否可以封裝在框架中?針對Objective-C項目中的可執行文件的鏈接

+0

如果這就是你想要的,你可以輕鬆地從應用程序中運行命令行工具?該工具可以在任何地方,例如在您的軟件包或用戶'PATH'中的任何位置。 – 2012-07-30 08:32:20

+0

如果第三方應用程序沒有編寫外部腳本或操作程序,那麼這個任務可能不是很容易。如果第三方應用程序只是一個命令行工具,那麼您可以將該工具作爲資源包含在您的應用程序包中,並使用'NSTask'啓動它。 – dreamlax 2012-07-30 09:20:31

回答

1

您可以使用Xcode的文件複製階段把額外的可執行文件與您的主要原因之一,在Your.app/Contents/MacOS,然後(讓我們說你複製grep)來找到它使用[[NSBundle mainBundle] pathForAuxiliaryExecutable:@"grep"]

我這樣做有點不同,例如我有一個Python程序調用我的一個應用程序(獲得plist格式的響應很好),我只是將它複製到My.app/Contents/Resources目錄中並使用[[NSBundle mainBundle] pathForResource:@「myScript」ofType:@「py」]來找到它。

你做這件事的方式是,我懷疑,味道的問題。我認爲把編譯好的可執行文件放在主要的可執行文件中是合理的,Python/Perl /不管在Resources中如何。從這裏開始,只需要設置一個NSTask來啓動並將aux程序的輸出傳回您的主要可執行文件。更多關於那here的信息。

相關問題