CocoaからAppleScriptを呼ぶのは,
NSAppleScriptを使えばいーんですが,パラメータを与えて処理とかしにくいので,私はCHAppleScriptってクラス作って使ってます.
chapplescript.dmg
これ使って任意のファイルのクリエータを変更するAppleScriptを呼んでみましょう.
↓のようなAppleScriptを書いてリソースに入れときます.ファイル名は"changeCreator.applescript"とします.
この例ではクリエータは"CHcv"に変更してますが,もちょっと工夫すれば任意の文字列に変更できるようにできると思います.
tell application "Finder"
set changeFile to file "FILE_PATH"
set creator type of changeFile to "CHcv"
end tell
で,これを呼ぶんですが,以下の一文でいけます.変更するファイルのパスはNSString型の変数"path"に入ってるとしています.
[CHAppleScript executeScriptWithFileName:@"changeCreator.applescript" substitution:@"FILE_PATH" to:[CHAppleScript convertPath:path]];
"changeCreator.applescript"内の"FILE_PATH"という文字列を[CHAppleScript convertPath:path]に置き換えて実行しています.
Cocoaのパスは"/"で区切られていますが,AppleScriptでは":"で区切るため,+(NSString *)convertPath:(NSString *)ptで変換しています.
マクロのよーに置換して実行しているので,関数呼び出しの引数とはイメージがちょっと違いますが,
これでパラメータを与えて実行することができます.
AppleScriptからの戻り値は
NSAppleEventDescriptorで返ってきます.
これの利用のしかたはリファレンス見てください.