我正在将一些代码从 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]);
}];
我在另一个答案(将 AMWorkflow 与沙盒应用程序一起使用)中读到,NSUserAutomatorTask 的“executeWithInput:”提供的值被忽略。变量是否也有可能?