命令行工具与Cocoa应用程序交互

Abh*_*ert 7 cocoa command-line foundation appkit

我有一个基于Cocoa文档的应用程序(文本编辑器),我希望能够从命令行与它进行交互.

例如,我想将其设置为在命令行上键入git/svn commit消息的编辑器.

假设我使用Foundation创建命令行工具,我的命令行工具与GUI应用程序通信的最佳方法是什么?

显然,我可以使用标准的开放事件让我的应用程序打开一个特定的文件,但我还需要命令行应用程序等待GUI应用程序完成文档(用户关闭编辑器窗口),然后退出(类似于mate -w file.txtTextMate的命令)行工具,或其他各种mac文本编辑器中的等效工具).

TextMate 2 使用套接字文件.这是最好的方法吗?如果可能的话,我想使用更高级别的东西NSDistributedNotificationCenter.

jus*_*tin 2

NSDistributedNotificationCenter如果这是您喜欢的抽象级别,可能会工作得很好。其接口类似于NSNotificationCenter. 关于NSDistributedNotificationCenter

  • 它仅限于 plist 类型
  • 允许删除通知
  • 它是昂贵的'
  • 延迟可能是不可预测的
  • 沙盒应用程序无法使用该userInfo:参数

如果您想要传输大量信息,或者想要更强大/可预测的东西,您可能会发现套接字更可取。