なんで、いまさら Mac OS X 10.3.9 と Mac OS X 10.4 をいったりきたりしているか?
Xcode 2.1...というより、AppleScript Studio が問題なんですね。新しいことはいいことだ、とばかりにインストールしたのはいいものの使いにくくない(=バグが多くない)でしょうか?。
AppleScript Studio を使っていると、挙動がおかしいところがよくある。スクリプティング自体が悪いのか、Xcode の問題なのか、AppleScript Studio か...どれかよく分からない。で、10.3.9 上の Xcode 1.5 を使って確認のためにいったりきたり。
Xcode ではなく、AppleScript Studio 1.4 の問題な気もします。具体的には、次のようなコード。
property notifWindow : missing value
on clicked theObject
if name of theObject is "debug" then
if notifWindow is missing value then
load nib "Notification"
set notifWindow to window "notification"
show notifWindow
else
show notifWindow
end if
end if
end clicked
ウィンドウにボタンがあってクリックすると nib ファイルをロードしてその nib のウィンドウを表示する...ロードしたウィンドウを閉じて、再度ボタンをクリックしてウィンドウを表示させる。こういったことをしたいわけです。上記を実行すると、ウィンドウを閉じて再度表示するときにエラーになります。
このコード自体は珍しいものでもなく Dev Tools のサンプルの中にもありますし、今まで正常に動いていました。上記のコードを以下のようにすると動きます。
property notifWindow : missing value
on clicked theObject
if name of theObject is "debug" then
if not (exists notifWindow) then
load nib "Notification"
set notifWindow to window "notification"
log ("Nib loaded")
show notifWindow
else
log ("Nib unloaded")
show notifWindow
end if
end if
end clicked
if の条件文を変更しただけです。実行すると分かるのですが、毎回ロードしています。プロパティの値を調べても、最初に nib をロードしたときのウィンドウの参照がちゃんと入っている。にもかかわらず、二度目の呼び出しでウィンドウがないと判断されてしまいます。もちろん、ウィンドウを閉じたときに解放しているのではありません。
結論。悪いのは、AppleScript Studio 1.4。また、Xcode にも問題はいっぱいあります。AppleScript からの操作がおかしい...ということがよくあります。特に、Xcode 2.1。
Xcode 1.5 は、まだまだ手放せそうにないです。
0 件のコメント :
コメントを投稿