Mac OS X 10.6 Snow leopard が発売になりました。
当サイトでは、よく iCal 関係の AppleScript を扱っていますが、Mac OS X 10.6 では、少し挙動が変わりました。試しに、iCal でカレンダー「テスト」に「テスト」というイベントを作って、AppleScript から観察してみます。
tell application "iCal" tell calendar "テスト" properties of event 1 end tell end tell
以下は 10.5.8 (iCal 3.0.8) の結果です。
{ allday event:false, class:event, description:missing value, end date:date "2009年 9月 2日 水曜日 1:00:00 PM", excluded dates:{}, id:"C0DC5F01-4183-412E-95AB-9414FD8111C6", location:missing value, recurrence:"", sequence:2, stamp date:date "2009年 8月 30日 日曜日 2:27:03 PM" start date:date "2009年 9月 2日 水曜日 10:00:00 AM", status:none, summary:"テスト", url:missing value, }
以下は 10.6 (iCal 4.0) の結果です。
{ allday event:false, class:event, description:missing value, end date:date "2009年9月2日水曜日 16:00:00", excluded dates:{}, id:"6A5888C1-D872-4C5F-B053-09CD8FC5067D" location:missing value, recurrence:missing value, sequence:2, stamp date:date "2009年8月30日日曜日 14:20:48", start date:date "2009年9月2日水曜日 13:00:00", status:none, summary:"テスト", url:missing value, }
プロパティリストの結果は、比較しやすいように辞書順に並べ替えています。以上のように、recurrence に値が設定されていない時の結果が違います。description に "" (空文字列) を設定した時の挙動も違い、iCal 3.0.8 では "" になりますが、iCal 4.0 では missing value になります。
なお、missing value を文字列に変換して扱ってはいけません。AppleScript では missing value as string は "missing value" という文字列になるというよく分からない仕様なので、気をつけましょう。