从Objective-C cocoa调用Perl库

时间:2011-02-04 19:31:36

标签: objective-c cocoa perl xcode

我有一个Perl库,用于从文件中读取一些信息(封闭格式)。 该库读取文件并返回带有结果的对象数组。

现在我必须在cocoa应用程序中集成该库(现在不能在cocoa中实现它)。基本上调用它并尝试在列表中显示结果。

是否有某种桥梁可以从ObjectiveC调用Perl库并获得结果?

我已经阅读了一些关于使用NSTask直接调用perl脚本并解析结果的内容,但我想知道是否可以直接执行该调用。

最好的问候。

2 个答案:

答案 0 :(得分:1)

你是完全正确的:NSTask是适合你的Cocoa(不是Cocoa-Touch)。您可以启动任何子进程,考虑到此子进程将从您的主任务继承环境(当然您可以应用不同的设置,例如运行目录)。 关于“system()”的优点是NSTask“启动”方法是非阻塞的,因此您可以将其用于长期的同步工作(并在结束时得到通知)。

对于perl的特定情况,只需在命令行中运行perl脚本:“/ usr / bin / perl ...”

最后,您可以尝试使用PerlObjCBridge(link:PerlObjCBridge.pm man page)进行Objective-C对象和perl之间的进程间通信。

答案 1 :(得分:0)

如果您想要一座桥梁,请查看PerlObjCBridge。如果你只想调用脚本,我相信你可以使用system()。像这样:

system( [scriptCallNSString UTF8String] );