Definir variáveis NSUserAutomatorTask sem exigir que os Fluxos de trabalho do Automator declarem essa variável
Estou a usarNSUserAutomatorTask
para iniciar um.workflow
, criado por meio do aplicativo Automator no macOS 10.1
Estou passando variáveis para o fluxo de trabalho através dovariables
propriedade:
https: //developer.apple.com/documentation/foundation/nsuserautomatortask/1418099-variable
O aplicativo pai está na caixa de areia. O script está localizado no.applicationScriptsDirectory
e é executado com sucesso quando as variáveis não estão definidas ou quando as mesmas variáveis são definidas no aplicativo e declaradas no fluxo de trabalh
if let workflow = try? NSUserAutomatorTask(url: url) {
workflow.variables = ["randomVariable": "value"] // NOTE
workflow.execute(withInput: nil) { (value, error) in
if let error = error {
print(error) // No variable named "randomVariable"
}
}
}
O fluxo de trabalho falha ao executar com o erro:
Nenhuma variável chamada "randomVariable"
No entanto, se eu editar o fluxo de trabalho e adicionar uma variável para corresponder à definida no código, tudo estará be
Já não recebo o erro e o fluxo de trabalho é executado corretamente:
Este é um problema, porque quero passar várias informações como variáveis para qualquer fluxo de trabalho em potencial e para cada fluxo de trabalho decidir individualmente lidar com cada parâmetro necessári
Eu não quero require que todo fluxo de trabalho declara as variáveis que meu aplicativo irá opcionalmente providenciar
Observe que, no meu exemplo de fluxo de trabalho, a variável nunca é usada. Não quero o requisito adicional de que seja declarad
Existe alguma maneira de evitar que cada fluxo de trabalho declare as variáveis que meu aplicativo passa ao executar o fluxo de trabalh
Or, existe uma maneira de inspecionar quais variáveis um fluxo de trabalho declarou? Eu só poderia passar os que realmente são usados pelo fluxo de trabalh