【发布时间】:2021-06-15 10:37:30
【问题描述】:
我收到以下 AppleScript 脚本错误,如果有人能解释原因,我将不胜感激。
在 Apple 的 Reminders 应用程序中,我创建了一个包含四个提醒项的简单列表,命名如下:
列表名称: 颜色
提醒: 红色、黄色、浅绿色、深绿色
然后我在 AppleScript 中设置了这个变量:
set lstMyList to {"Red", "Yellow", "Orange", "Blue"}
我不明白的是以下内容,前两个语句有效,但第三个无效。
声明 1.(成功)
这会返回 true,因为提醒 1 的名称(“红色”)在 lstMyList 中
tell application "Reminders"
return (name of reminder 1 of list "Colours") is in lstMyList
end tell
声明 2.(成功)
这会返回 {"Light Green", "Dark Green"}
tell application "Reminders"
return (name of every reminder in list "Colours") whose name contains "Green"
end tell
声明 3.(失败)
这应该返回 {"Red", "Yellow"},但会触发 -1700 错误
tell application "Reminders"
return (name of every reminder in list "Colours") whose name is in lstMyList
end tell
弹出的完整错误是:
“提醒出现错误:无法将 {“Red”、“Yellow”、“Orange”、“Blue”} 设为类型说明符。” 从 {"Red", "Yellow", "Orange", "Blue"} 到说明符的数字 -1700
我无法理解第三种情况发生了什么,因为第一个语句使用“is in lstMyList”没有任何问题,第二个语句使用“whose”没有任何问题。
我应该补充一点,我知道可以通过翻转代码来完全绕过错误,例如循环通过 lstMyList 并检查提醒。但是,我试图避免这样的解决方案,因为这会导致 Apple 事件的重复发送,这会导致运行时间显着增加,尤其是对于大量列表项。
这里的任何解释和/或建议将不胜感激。谢谢。
【问题讨论】:
标签: list applescript reminders