我有一个Perl库,用于从文件中读取一些信息(封闭格式)。 该库读取文件并返回带有结果的对象数组。
现在我必须在cocoa应用程序中集成该库(现在不能在cocoa中实现它)。基本上调用它并尝试在列表中显示结果。
是否有某种桥梁可以从ObjectiveC调用Perl库并获得结果?
我已经阅读了一些关于使用NSTask直接调用perl脚本并解析结果的内容,但我想知道是否可以直接执行该调用。
最好的问候。答案 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] );