2011-02-04 51 views
4

我有一個Perl庫用於從文件(封閉格式)中讀取一些信息。 這個庫讀取一個文件並返回一個包含結果的對象數組。從Objective-C可可調用Perl庫

現在我必須在可可應用程序中集成該庫(現在無法在可可中實現)。基本上調用它並嘗試在列表中顯示結果。

是否有某種橋樑可以從ObjectiveC中調用Perl庫並獲得結果?

我讀過一些關於使用NSTask直接調用perl腳本並解析結果的問題,但我想知道是否可以直接執行該調用。

此致敬意。

回答

0

如果你想要一座橋,請看PerlObjCBridge。如果你只是想調用腳本,我相信你可以使用system()。這樣的事情:

system([scriptCallNSString UTF8String]); 
1

你是完全正確的:NSTask是在可可(而不是Cocoa-Touch)適合你的類。考慮到這個子進程會繼承你主要任務的環境(當然你可以應用不同的設置,例如運行目錄),你可以啓動任何子進程。 與「system()」有關的優點是NSTask的「啓動」方法是非阻塞的,因此您可以將其用於長時間異步作業(並在結束時通知它)。

爲Perl的具體情況,只需要運行Perl腳本作爲命令行: 「在/ usr/bin中/ perl的...」

最後你可以用PerlObjCBridge(鏈接:PerlObjCBridge.pm man page)一拉昇Objective-C對象和Perl之間的一種進程間通信。

+0

謝謝,我會研究PerlObjBridge – ernie 2011-02-05 00:35:14