Как часть рабочего процесса автоматизации, я хотел бы иметь возможность хранить ссылку на объект applecript внутри NSMutableDictionary. Это сделано для того, чтобы можно было использовать имена переменных переменных. Поддерживая экземпляр NSAppleScript живым, я смог бы вернуться к предыдущим результатам и продолжить с того места, где остановился.
Конкретно, я бы хотел сохранить объект Presentation (Microsoft PowerPoint) внутри NSMutableDictionary.
use framework "Foundation"
property memory : null
set memory to current application's NSMutableDictionary's dictionary()
-- function to get a ref to a presentation based on either a NAME or a PATH
on getPresentation(desc)
tell application "Microsoft PowerPoint"
if (item 1 of desc) is "" then
return item 1 of (get presentations whose path is (item 2 of desc))
else
return item 1 of (get presentations whose name is (item 1 of desc))
end if
end tell
end getPresentation
-- Fetch a currently open presentation (just an example)
-- this exists if you open a new presentation in PPT (no saving) and enter as title test
set pres to getPresentation({"test [Autosaved]", null})
memory's setObject:pres forKey:"presentation"
Это выдает следующую ошибку:
error "Can’t make «class pptP» 2 of application \"Microsoft PowerPoint\" into the expected type." number -1700 from «class pptP» 2
Я бы хотел иметь возможность сохранить объект pres для будущего использования, ссылаясь на него из содержащегося в нем кода Objective-C (через NSAppleScript, при необходимости вызывая методы на pres через оболочки). Я могу сказать appleScript, чтобы он хранил результат какого-то обработчика по какому-то адресу и использовал его позже.
Я пытался использовать a reference to pres
для решения проблемы, но безуспешно.
Есть ли способ решить это? Возможно, класс обертки вокруг pres, который позволяет хранить его внутри NSMutableDictionary? Возможно, я смогу написать свой собственный код Objective-C, который будет работать на pres?
Любая помощь будет высоко ценится!