2017-01-02 14 views
0

Как часть более крупного проекта, я хотел бы получить путь к точке монтирования устройства, на котором хранится мой скрипт.
Я разработал следующий код в редакторе сценариев, однако, после его реализации в ApplescriptObjC (Xcode), я заметил, что ошибка началась.ApplescriptObjC путь к диску (главный диск)

# Get Mount Point of script USB host 
tell application "Finder" 
    try 
     set usbMountPoint to text 1 thru -2 of POSIX path of (disk of (path to me) as alias) 
     log usbMountPoint # Output: /Volumes/usb-drive-name 
    on error 
     set usbMountPoint to POSIX path of (disk of (path to me) as alias) # if file is on desktop, path: '/', can't have '[space]' hence no removing 
     log usbMountPoint # Output: /Volumes/usb-drive-name 
    end try 
end tell 

Невозможно сделать «класс ocid» идентификатор «данные optr00000000207F220080600000» в тип константы. (ошибка -1700)

Я включил комментарии в код о том, как должен выглядеть выходной журнал. Я понял, что вопросы, связанные с проблемой path to me в Xcode, были заданы раньше, и что set myPath to current application's NSBundle's mainBundle()'s bundlePath() дает текущий путь, однако мой вопрос касается его части disk of.

Любая помощь в получении желаемого результата в Xcode очень ценится.

ответ

1

Это требует много, но принуждение эквивалент AppleScriptObjC в Xcode является

set myPath to current application's NSBundle's mainBundle()'s bundlePath() as text 
tell application "Finder" to set mountPoint to POSIX path of (disk of item (myPath as POSIX file as text) as alias) 
log mountPoint 

Объем запуска представлен / всех остальных томах /Volumes/<volumeName>