I am currently making use of the suspendExecution
and resumeExecutionWithResult
of NSScript command in order to execute Apple Scripts asynchronously in my application. Provided below are the set of basic steps that I have taken to achieve the same.
1) Get the script command and store it in an IVAR. Now suspend the execution of the command using [NSScriptCommand suspendExecution]
2) Execute any transaction calls which will return the results asynchronously.
3) In the completionHandler
of the Async call resume the execution with the fetched results i.e
[NSScriptCommand resumeExecutionWithResult:result]
The steps mentioned above work perfectly fine when I execute scripts from the Script Editor. but using an NSAppleScript
object (when executing the scripts from say a scripts menu) to execute the same results in the following error
"AppleEvent timed out. Error Number: -1712"
The timeout error occurs almost instantaneously. Any pointers as to how this issue can be fixed would be greatly appreciated.
I found that using NSUserAppleScriptTask
(available with the 10.8 SDK) instead of NSAppleScript
to execute the Apple Script resolves this issue.