AMWorkflow から NSUserAutomatorTask にいくつかのコードを移行して、最終的にアプリをサンドボックス化できるようにしています。AMWorkflow で可能だったように、ワークフロー内の既存の変数の値を次のように設定できるようにしたいと考えています。
AMWorkflow *task = [[AMWorkflow alloc] initWithContentsOfURL:scriptURL error:nil];
[task setValue:@"myValue" forVariableWithName:@"myVar"];
ただし、NSUserAutomatorTask で同様の作業を行うことはできないようです。私が見つけることができる唯一のドキュメント (クラス リファレンス) は、変数を NSDictionary として提供すると述べています。
だから私は次のようなことを試みています:
NSUserAutomatorTask * task = [[NSUserAutomatorTask alloc] initWithURL:workflow error:nil];
task.variables = [NSDictionary dictionaryWithObject:@"myValue" forKey:@"myVar"];
[task executeWithInput:nil completionHandler:^(id result, NSError *error){
if(error)
NSLog(@"Error while executing workflow %@", [error localizedDescription]);
}];
NSUserAutomatorTask の "executeWithInput:" で指定された値が無視されるという別の回答 (サンドボックス化されたアプリで AMWorkflow を使用する) を読みました。変数もそうである可能性はありますか?