我正在尝试编写一个 AppleScript 来查询 iCal 并查找任何日历中给定日期的所有事件。
我首先编写一个简单的脚本,对给定日历中的每个事件执行一些简单的操作:
tell application "iCal"
tell calendar "Reuniones"
set the_events to every event
repeat with an_event in the_events
-- do something with every event
set value to summary of an_event
end repeat
end tell
end tell
然而,这个简单的脚本需要花费很多时间来执行(几秒钟),即使我没有在循环内执行任何复杂的操作。恐怕真正的脚本执行起来真的要花很多时间。
我对 Applescript 不太熟悉,因此我想我正在做一些愚蠢的事情,这会对性能产生严重影响。
有人能解释一下为什么这需要花这么多时间来执行吗?有人可以提出一些建议来改进我的代码吗?我现在将开始检查事件的日期,并在循环中添加一个条件。我怀疑必须有一种方法来搜索带有日期的事件(就像 Automator 操作所做的那样),但我一直无法找到一种“本地”方法来做到这一点......
EDIT:我使用的是 Mac OS X Tiger (10.4)。新版本的 iCal 可能改进了可用的操作库。
我今天一直在努力解决这个问题,发现您可以按日期过滤(至少在雪豹上)。所以
tell application "iCal"
set out to ""
set todaysDate to current date
set time of todaysDate to 0
repeat with c in (every calendar)
set theEvents to (every event of c whose start date ≥ todaysDate)
repeat with current_event in theEvents
set out to out & summary of current_event & "\n"
end repeat
end repeat
return out
end tell
与迭代所有事件相比,将非常快地返回所有未来事件的摘要。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)