ASOCでアプリケーションを作ってみる-05-Xcode3.2ASOCでアプリケーションを作ってみる-05-Xcode3.2前回ですばらしいアプリケーションは完成ですが、この先を自力で試す人のために大切な事の補足です。それでもやっぱりAppleScriptObjCはやっぱりAppleScriptと違うのですメソッドはハンドラみたいだし、オブジェクトの値も操作できたし、これで後はAppleScriptでガリガリ書いて試してみよう、という人の為にいきなりぶつかるだろう問題だけ補足しておきます。Thing前回までで作った『clickButton_』のハンドラの最後に以下のようにAppleScriptでは見慣れた文字列をダイアローグボックスに表示するだけのソースを書き加えて実行してみます。textFieldValueするとこの行でエラーになり、以下のようなエラー内容がログに書き出されます。-1700)--本来1行ですが改行を挿入していますどうやら渡された値を『string』、つまり文字列に出来ないと言っているようです。渡されたログにもちゃんと文字として書き出されているテキストフィールドの値は何なのでしょう?先ほどのヘルプを読み直すと、返り値は『NSString』だよ、と書かれています。AppleScriptの値の型には『NSString』というものはありません。dialog』の前に以下を挿入して実行してみます。textもし文字列なら『text』とログに書き出される筈ですが、やはり同じようにエラーになります。仕方ないのでObjective-Cのメソッドの中にクラスを調べるものがないか探して、以下に書き換えて実行してみます。textFieldValueするとログには『NSCFString』と書き出されました。AppleScriptでは扱えない値の型なのです。基本的にObjective-Cのメソッドの返り値は『NSなんとか』という型の値になります。これはAppleScriptでは扱えない方なので、扱えるように変換を行えばいいのです。dialog』を以下のように書き換えます。text)これで実行すると、今度はうまく行き、ダイアローグも表示されました。このようにObjective-Cのメソッドの返り値をAppleScriptの値として使う場合は、text(文字)、Number(数字)、Boolean(真偽値)など適切なものに変換して使う必要があるので気をつけてください。text)のクラスをclassNameで捕ろうとすると今度はこちらがエラーになるのですが。最後にAppleScriptの知識でサクッと何か作りたい、となると最初は結構戸惑います。慣れてくるとAppleScriptStudioよりも楽かもしれないと思うようになってきています。これまで敷居が高くてなかなか取りかかれなかったObjective-Cの勉強もAppleScriptObjCでいろいろと作って見ているうちに、基本的な作業の流れを覚えられたり、作法を覚えられたり、またほんの小さなものをObjective-Cで作成してメソッドとして呼び出して試してみたりすることができるので、なんとなく手軽に試す事が出来るようになった気がします。現状ではObjective-Cしか知らない人にもAppleScriptしか知らない人にも中途半端で面倒な環境となってしまっていますし、実際ネット上ではObjective-Cが分からないと使えない、という書き込みも散見されます。本当ならちゃんと日本語で書かれた書籍がでてくれば(未整備な実装の改善も含めて)、いろいろな人にとって有用で柔軟な環境になると思います。人様の本を読んで勉強させていただいているので、その内容に冠ることはできるだけ避けたいところで、なかなか問題の解決策もズバリとは書くにくい状況です。Explored』というPDFの書籍くらいしかありません。実はこの先にもいろいろと面倒なことが待っているので、なにかあればこの中を探すのがいいだろうと思います。Explored』に被らない方向で、もう少し踏み込んだ内容に触れられれば、と思います。何か間違いや補足等ありましたらコメントを頂けるとありがたいです。ご同輩、がんばりましょう。actions.』というムービーのリンクがありました。ここまで見てきたものよりもう少しだけ複雑なインターフェースを扱っています。独習の参考になるかと思います。AppleScript-Objective-C』というのもあったのですが、これは基本的には上と同じものを使っているようです。Dev』としてiTunesでみれるようです。