当前位置: 首页 > 知识库问答 >
问题:

简单的Apple Automator迭代器不工作(使用AppleScript)-为什么?

胡俊贤
2023-03-14

我正在尝试做世界上最简单的事情——自动机中的基本迭代器。工作流程如下:

获取变量的值(最初设置为1)

运行Applescript:

on run {input, parameters}
    set input to input + 1
    return input
end run

设置变量的值

它第一次工作,按预期从1上升到2。但它在第二次通过时失败,给出了错误

无法使{}输入类型号。(-1700)

我不知道为什么——我试着让它作为一个整数从Applescript输出,但没有任何区别。有人能解释一下吗?

共有1个答案

李意致
2023-03-14

错误是因为在工作流的第二个循环中,applescript没有收到任何输入。我猜您的循环函数没有接收任何输入,因此它没有将任何内容传递回applescript。applescript和循环函数之间的任何内容都会产生干扰。

另一种选择是,将此作为你的applescript。automator工作流应该只有两个操作,这个applescript代码和循环操作设置为“使用当前结果…”。

在这个代码中,在第一个循环中,Applescript不会有任何输入,所以它会要求你输入,然后在随后的循环中,Applescript会从循环操作中接收输入,因此它会增加你的初始输入。

祝你好运

on run {input, parameters}
    if input is {} then
        display dialog "Enter a number" default answer "1"
        set input to (text returned of result) as number
    else
        set input to input + 1
    end if
    return input
end run
 类似资料:
  • 我有运行一些Applescript的bash函数。如果我在Applescript编辑器或Textate中运行Applescript部分,它可以正常工作,但是在命令行上,函数失败了... 错误是: 我知道(认为)问题在于这一行的第一个bash转义序列: 但我不知道为什么失败了。。。你知道为什么这行不通吗? 编辑1:我也尝试过这个,但失败了: 错误消息:

  • 本文向大家介绍请简单说明一下什么是迭代器?相关面试题,主要包含被问及请简单说明一下什么是迭代器?时的应答技巧和注意事项,需要的朋友参考一下 考察点:JAVA迭代器 Iterator提供了统一遍历操作集合元素的统一接口, Collection接口实现Iterable接口, 每个集合都通过实现Iterable接口中iterator()方法返回Iterator接口的实例, 然后对集合的元素进行迭代操作.

  • 为什么JSF2/Facelet的ui:repeat不接受java。util。迭代器的值?可以在迭代器后面隐藏如此多的实现和内存节约,因为长度不需要知道,所以拥有它是非常有用的。但是相反,我需要将迭代器转换为列表,并抛弃所有优点,以便ui:repeat。 可能有阶段、时间或可序列化的原因,但我对可用文档的浏览并没有给出这些原因。我们还没有使这一不可能成为可能的科学吗?

  • 问题内容: 我正在寻找一个类,可以在其中重写方法来完成工作,并像迭代器一样返回结果。像这样: 这主要将用于蒙特卡洛模拟之类的事情,但我不想每次都要处理设置线程池和管理返回线程的问题。我开设了自己的班级, 希望能 完成这个任务,但是我对此没有足够的信心,以为我会检查是否已经存在这样的东西。 编辑:明确地说,我希望它在每个工作方法返回后继续在后台运行并对结果进行排队,直到完成所有试验为止。因此,下一个

  • 假设您希望对迭代器的元素进行流式处理;让我们使用一个的具体示例,它实现了。 给定,比方说: 在给定的情况下,JDK中是否有一个工厂方法返回?

  • 下面是一个最小的代码,用于重新创建让我怀疑的条件: 为什么在大小写中传递常量作为参数而在大小写中工作会出错? 错误的详细信息: 错误:将“const std::basic_string”作为“std::basic_string”的“this”参数传递