タイトル
AppleScript Working》6 _ AppleScript Studioでlogコマンドを使う(2)
カテゴリー
ProjectBuilder/Interface Builder, AppleScript, AppleScript Working
作成日
2002/2/15 15:56:43
作成者
新居雅行
ログを作成するクラスのファイルは、HAStudioLogger.hとHAStudioLogger.mの2つであるが、これを、自分のプロジェクトのフォルダにコピーをしておこう。もちろん、Finderで作業を行なうが、適当な方法で作業をすれば良い。
◇ログ作成を行うクラスのソースを自分のプロジェクトにコピーする
続いて、自分のプロジェクトに、これらのソースファイルを登録する。ここでは、Finderから、プロジェクトの「グループとファイル」のところに直接ドラッグ&ドロップした。場所は別にどこでもかまわないが、たとえば、Other Sourcesのグループに入れておけばよいだろう。なお、Objective-Cのソースとヘッダなので、その他の設定は問題なくなされる。ドラッグ&ドロップした後、Project Builderをアクティブにして追加するターゲットなどをたずねるシートで「追加」ボタンをクリックしなければならない。
◇ソースとヘッダをプロジェクトに追加する
以上で準備は終了だ。
――――HAStudioLoggerの使い方
HAStudioLoggerは、これまでのログ関連コマンドと同じように使えばよい。logコマンドの後に、変数名や式などを記述すると、その内容が出力される。数字や文字列はもちろん、リストやレコードでもかまわないし、参照でも基本的にはかまわない。すると、Project Builderから実行したアプリケーションの場合、Project Builderのコンソールに、日付時刻、発生したアプリケーション名とプロセスID、そしてlogコマンド以降に記述した式や変数の値が表示される。値はこれまでのログと同様、AppleScriptのコメント形式になっている。
一方、AppleScriptのプログラムに、start logというコマンドを入れれば、そこからイベントのの収集が始まる。そして、stop logコマンドがあるまで続ける。以下はその実行例だ。プログラムとして示されている部分は、ウインドウにあるボタンをクリックして実行されるプログラムである。
◇logコマンドの利用例
ここにあるように、たとえば、AppleScriptでlog 123のようなコマンドがあれば、コンソールに (* 123 *) のように表示される。アプリケーションの処理の途中結果などを、プログラムを流しながら見たいときには、これでlogコマンドを使えるというわけである。
一方、start logによってイベントの収集が行われている。ASCII charcterは外部コマンドとして用意されていて、文字コードから文字を生成するものだが、そのイベントが、現在のアプリケーションから発生されたことがコンソールに表示される。コンソールには、AppleScriptのプログラム形式で表示されている。
なお、生成したアプリケーションを実行すると、logコマンドの結果や収集したイベントは、UtilitiesフォルダにあるConsoleで参照できるようになる。つまり、素直に標準出力に出されているというわけである。
◇ビルドしたアプリケーションではConsoleに出力される
HAStduioLoggerで行っていることは、ちょっと複雑だが、概要を説明しておこう。まず、このクラスはnibファイルにインスタンスを作成しているので、nibファイルをロードしたときに生成される。そのときにAppleEventのディスパッチを行い、log、start log、stop logコマンドで、HAStudioLogger内のメソッドが呼び出されるようにしている。実際のログの書き出しはNSLog関数を使っているが、イベントからの値の取り出しやAppleEvent関連のさまざまな処理が組み込まれている。
ダウンロードしたプロジェクトには、NSDictionaryとAERecordとのコンバートを行うクラスもある、興味のある人には重要な情報源になるかもしれない。
なお、HAStudioLoggerは、Interface Builderのツール形式になったものを開発中であるので、近々、バージョンアップがあるかもしれない。その折には、記事でお届けしよう。
(この項、以上)
関連リンク