Как получить доступ из AppleScript к пакетному файлу в приложении Cocoa-AppleScript? - PullRequest
0 голосов
/ 09 мая 2011

В AppleScript я привык вызывать:

set audio_file to (path to me as string) & "Contents:Resources:Audio:Music.mp3"
display dialog "Path: " & (quoted form of POSIX path of audio_file)

Теперь у меня есть этот код внутри проекта Cocoa-AppleScript в Xcode.Компилируется хорошо, но скрипт вообще не работает.Диалог никогда не показывает.

Без (path to me as string) работает, но без пути.

Ответы [ 4 ]

1 голос
/ 11 августа 2015

Для файла ресурса я использую:

set fname to POSIX path of (path to resource "filename")
0 голосов
/ 10 мая 2011

И ответ таков: в приложении Cocoa-AppleScript правильный синтаксис НЕ:

(path to me as text)

НО:

(path to current application as text)

me недопустимо в качестве самостоятельной ссылки. Правильный - current application.

Надеюсь, это поможет другим:)

0 голосов
/ 24 января 2013

Для простого случая вы можете просто поместить файл в корневой уровень дерева файлов в проекте XCode, а затем выполнить:

    set theFilePath to (path to resource "SomeFile.ext")

В моем случае я делаю:

    tell application "Finder"
        open theFilePath
    end tell

и он открывается в связанном приложении.

При распространении приложения файл SomeFile.ext попадает в папку «Ресурсы» пакета приложения.

Не уверен на 100%, как указать подпапку, так как она мне пока не нужна, но я думаю, это будет (path to resource "Audio:SomeFile.mp3")?

0 голосов
/ 09 мая 2011

«Путь ко мне как строка» кажется правильным, но у вас могут быть 2 другие проблемы. 1) путь к вашему аудиофайлу должен содержать «Содержимое», а не «Содержимое». 2) В диалоговом окне отображения вам не нужна «форма в кавычках», потому что путь posix является строкой и может быть без проблем добавлен в вашу строку «Path:». Так что проверьте эти 2 вещи и посмотрите, поможет ли это.

Edit: Если вышеперечисленное не помогает, есть «способ какао, чтобы получить путь к приложению. Я не знаю синтаксис applecript-objc, но это то, как вы могли бы получить его с помощью метода какао ...

NSString* appPath = [[NSBundle mainBundle] bundlePath];

И чтобы напрямую получить путь к ресурсу, используйте это ...

NSString* resourcePath = [[NSBundle mainBundle] pathForResource:@"test" ofType:@"mp3"];
...