純粋に実験として、AppleScript を使ってかなり複雑なことをしようとしています。ほとんどの場合、何よりも学術的な演習としてですが、問題が発生しています。これが何が起こっているかです。
まず、「ascr_code_library.scpt」という名前のコード ライブラリがあり、メソッドが 1 つだけ含まれています。
on return_string_position(this_item, this_str, delim)
set old_delims to AppleScript's text item delimiters
set AppleScript's text item delimiters to delim
set this_list to text items of this_str
set found_pos to 0
repeat with i from 1 to the count of this_list
if item i of this_list is equal to this_item then set found_pos to i
end repeat
set AppleScript's text item delimiters to old_delims
return found_pos
end return_string_position
次に、このスクリプト「test-2.scpt」があります。それが行うことは非常に単純で、一目瞭然です。
set scr_lib to load script (choose file with prompt "Please pick a library")
tell scr_lib
return_string_position("Who", "Who am I?", " ")
end tell
しかし、スクリプトを実行してファイルを選択すると、次のエラーが表示されます。
*“«data scpt4D617259332E303000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 . . . . . . . (など、5 ページに渡って続きます) . . . 1000101010CFADEDEAD» は return_string_position メッセージを理解していません。」*
それで、どこが間違っているのですか?私が知る限り、スクリプトは正しくロードされています。しかし、このような単純なスクリプトで他にどこが間違っているのでしょうか? メソッド呼び出しの前に「my」を付けてみましたが、それもうまくいきませんでした。何か案は?