-2

サードパーティのココア API を使用するココア アプリケーションを構築しようとしています (URL スキームにも応答する必要があります)。アプリケーションをできるだけシンプルにして、他のアプリケーションの「ヘルパー」アプリケーションとして機能させたいと考えています。

これを行うための最良の方法は、コマンドラインから引数を指定してアプリケーションを起動し、終了する前に CLI に直接出力するか、plist などの中間ファイルに出力を書き込むことです。

どうすれば出力を生成するのが最善でしょうか (コマンドラインにダンプするだけだと仮定します)、および/またはこれを行うためのより良い方法はありますか?

4

1 に答える 1

1

一般的なアドバイスのみ、「最高」は主観的です!

出力の複数の「blob」(専門用語です ;-)) を生成する場合は、C の標準 I/O 関数を使用します。1 つの blob を出力するだけの場合は、write. 基本的なアプローチは次のとおりです。

  1. NSStringとにかく好きなように出力を生成します
  2. UTF8String方法を使用NSString(または他の文字セット エンコーディングに変換) して、C 文字列を生成します。
  3. C文字列をstdoutwithfputsなどに出力するか、を1使用してファイル記述子に出力しますwrite

これを複数回行う場合は、必要に応じてフォーマット文字列/引数を取るメソッドとして上記をラップします。

一部の CLI アプリケーションは plist 形式で端末に出力を生成することがわかります。これは、ヘルパーになるアプリケーションに役立ちます。呼び出し元のアプリケーションは、パイプを介して出力を読み取り、読み取りと同じように plist を辞書/配列に変換できます。 .plist ファイル。これは、plist をファイルに書き込んで読み返すよりも直接的なアプローチです。

ただし、ヘルパーは CLI や GUI を持つ必要はありません。さまざまな形式の IPC を使用して起動し、ヘルパーと通信できます。アプリをサンドボックス化する場合は、XPC ヘルパーを検討する必要があります。

HTH

于 2013-04-04T19:59:37.797 に答える