アーカイブ
-
クラスメソッドかインスタンスメソッドか
AppleScriptObjC に関しては、風のウワサで「何でもできるよ!」と聞いてはいたのですが、Cocoa/Objective-C と AppleScript の両方やっている身からすると、触っていくうちにそこかしこで「え? Cocoa のあれどうやってやるの?」という場面に遭遇します。
ふと思ったのが、AppleScript のクラスでどうやってクラスメソッドを定義するのか ということです。ひとまずの結論としては、クラスメソッドとして呼びたければそのように、インスタンスメソッドとして呼びたければそのように呼べばいい ようです。
サンプルコード
ClassMethodOrInstanceMethod.zip
2009年 August 30日 | Filed under Uncategorized -
AppleScript で書いたクラスを ObjC から使う
Snow Leopard では、AppleScript Studio の後を継いで AppleScriptObjC.framework が導入され、Cocoa の大半の機能を AppleScript から利用できるようになりました。
例えば、AppleScript から Cocoa/Objective-C のクラスを利用したり、AppleScript でそれらのクラスのサブクラスを作成できるようになりました(言い換えれば、作成しなければならなくなった …笑)。
少し残念なのは、前述の通り 「AppleScript から Cocoa の機能を利用する」ことに重点が置かれており、Cocoa/Objective-C の世界から AppleScript を利用する ことには(まだそんなに調べていませんが)重点が置かれていないようです。
ただ、AppleScript で書いたクラスも、アプリケーションの動作中には Objective-C のクラスとして存在するわけで、それにアクセスするのは、(ヒネた内部構造になっていなければ)さほど難しくないはず…。
というわけで作成したのが、今回のサンプルコードです。
サンプルコード
UseASClassFromObjC.zip
2009年 August 30日 | Filed under Uncategorized -
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 だけでいいのですが、念のため)
理由は言えません。
2008年 May 9日 | Filed under Uncategorized -
Leopard:10.5.2 First Impression
事前に「ものすごいサイズになる」という噂を聞いていたので、ちょっと拍子抜け(それでも Leopard Graphics Update と合わせて 200MB 強はありましたが)しましたが、早速アップデートしました。
以下、非常に偏った感想を。
2008年 February 13日 | Filed under Uncategorized -
Notes:AppleScript(Studio)でキーチェーンを使う
※ これは Kaku 1.0.2・Kaku 1.1a2 リリース からのスピンオフ記事です。
パスワードなどを扱いたいときに、システム標準の「キーチェーン」にアクセスできると便利です。
AppleScript でそれを行うために、「Keychain Scripting」というスクリプティング機能追加(正確には、その処理を代行してくれるウィンドウのないアプリケーション)が用意されていますが、これが不具合てんこ盛りの代物なのです。
まず、Studio じゃない場合の不具合からいくと、
認証ダイアログで「拒否」すると、Keychain Scripting がハングする。 複数のスクリプトが Keychain Scripting にアクセスすると、不安定になる(これは僕自身では確認していません)。
また、AppleScript Studio から Keychain Scripting を使おうとする人がどれだけいるか分かりませんが、上記に加えて、
なぜかフィルタ参照が使えなくなる。それも全部ではなく、項目によって。試してみないと分からない。例えば、 first key of current keychain whose account is “ppm” など。 (上の問題と関連していたかもしれませんが)リテラルなら大丈夫なのだが、変数を与えるととたんに動かなくなる。例えば、 first key of current keychain whose account is accountVar などが、ときに動かなくなる。 一度登録したキーの内容を変更できない(普通の AppleScript ならできる)
…と、意味の分からない不具合が多々あるのですが、AppleScript からシームレスに呼び出せるという利便性もあり、以前のバージョンの Kaku では、フィルタ参照で済むはずのところを repeat 文にしたり、内容の変更ができないので 削除 → 新規登録 で対応したりと、なんとか手なずけて使っていたのですが、やはり Hiro さんのところでハングしてしまう、ということで、代替案を探しました。以下では、僕の選択肢に入ったものを紹介しています。キーチェーンを使いたい動機が違えば、選択肢が変わってきますので、全て載せます。
security コマンド
do shell [...]
2008年 January 9日 | Filed under Uncategorized
Recent Comments