2013-04-04 46 views
-2

我正在嘗試構建使用第三方可可API的可可應用程序(它也需要響應URL方案)。我希望我的應用程序儘可能簡單,並作爲其他應用程序的「幫助」應用程序。我應該如何創建一個輸出到命令行的Cocoa應用程序?

看來我最好的辦法是從命令行with arguments啓動應用程序,然後在退出之前將一些輸出直接寫入CLI或某個中間文件(如plist) 。

我怎樣才能最好地產生輸出(假設我只是把它轉儲到命令行),和/或有沒有更好的方法來解決這個問題?

+0

您是否要求將NSLog重定向到文件? – 2013-04-04 18:43:41

+2

'fprintf(stdout,「format%d string \ n」,1337);' – 2013-04-04 18:45:50

回答

1

一般性意見只,「最好」是主觀的!

如果您將輸出多個「blob」(這是一個技術術語;-))使用C的標準I/O函數,如果您只打算輸出一個blob,則可以使用write。其基本做法是:

  1. 生產爲NSString您的輸出 - 反正你喜歡
  2. 使用的NSStringUTF8String方法(或轉換成其他一些字符集編碼),以產生一個C字符串
  3. 輸出C字符串到stdoutfputs等或使用write

如果你這樣做是多次包裹上面了文件描述符1一sa根據需要採用格式字符串/參數的方法等。

您會看到一些CLI應用程序以plist格式生成輸出到終端,這對於要成爲助手的應用程序非常有用 - 調用應用程序可以讀取通過管道輸出並將plist轉換爲字典/數組,就像讀取.plist文件一樣。這比將plist寫入文件然後再讀回來更直接。

但助手不需要CLI或GUI,您可以用各種形式的IPC啓動並與他們通信。如果您的應用程序將被沙盒化,則應考慮XPC幫助程序。

HTH

相關問題