クラスメソッドかインスタンスメソッドか

AppleScriptObjC に関しては、風のウワサで「何でもできるよ!」と聞いてはいたのですが、Cocoa/Objective-C と AppleScript の両方やっている身からすると、触っていくうちにそこかしこで「え? Cocoa のあれどうやってやるの?」という場面に遭遇します。

ふと思ったのが、AppleScript のクラスでどうやってクラスメソッドを定義するのか ということです。ひとまずの結論としては、クラスメソッドとして呼びたければそのように、インスタンスメソッドとして呼びたければそのように呼べばいい ようです。

サンプルコード

ClassMethodOrInstanceMethodScreenSnapz001

Continue reading

AppleScript で書いたクラスを ObjC から使う

XcodeScreenSnapz011

Snow Leopard では、AppleScript Studio の後を継いで AppleScriptObjC.framework が導入され、Cocoa の大半の機能を AppleScript から利用できるようになりました。

例えば、AppleScript から Cocoa/Objective-C のクラスを利用したり、AppleScript でそれらのクラスのサブクラスを作成できるようになりました(言い換えれば、作成しなければならなくなった …笑)。

少し残念なのは、前述の通り 「AppleScript から Cocoa の機能を利用する」ことに重点が置かれており、Cocoa/Objective-C の世界から AppleScript を利用する ことには(まだそんなに調べていませんが)重点が置かれていないようです。

ただ、AppleScript で書いたクラスも、アプリケーションの動作中には Objective-C のクラスとして存在するわけで、それにアクセスするのは、(ヒネた内部構造になっていなければ)さほど難しくないはず…。

というわけで作成したのが、今回のサンプルコードです。

サンプルコード

Notes:iPhone SDK をインストールしようとしている AppleScript Studio ユーザーの方へ

iPhone の登場は、モバイルコンピューティングの世界に大きな衝撃をもたらしました。

そして、その登場から一年。ネイティブアプリの開発を可能にする iPhone SDK の投入によって、新たな革命が起ころうとしています。

世界中の優秀な開発者たちは、いま最も注目されている携帯デバイス上で、自分の実力を試すことができる時を、今か今かと待ち構えているところでしょう。

その iPhone と並び称される Apple のプロダクトに、AppleScript Studio があ…… るわけは全くありませんが、久しぶりに AppleScript Studio のお話を。

iPhone SDK をインストールする前(Xcode のバージョン=3.0)に:

  • /Developer/Library/Xcode/Plug-ins/ASK*.pbplugin をバックアップ しておきましょう。(※ 実際は ASKPlugin.pbplugin だけでいいのですが、念のため)

理由は言えません。