如果我想查看我的 OS X 日历(以前称为“iCal”)以查找摘要为“午餐”的事件,我可以执行以下操作:
var eventsContainer = Application('Calendar').calendars[0].events
for (var i = 0; i < eventsContainer.length; i++) {
var thisEvent = eventsContainer[i];
if (thisEvent.summary() == 'Lunch') { doSomething() }
}
即使考虑到这只搜索第一个日历的事实,它也非常、非常、非常慢,因为每个 iCal 事件都需要转换为 Javascript 对象才能运行。这是一个更快的公式:
var foundEvents = Application('Calendar').calendars.events.whose({summary: 'Lunch'});
这非常适合精确匹配summary == 'Lunch'
。但是诸如endDate: > new Date()
or之类的比较summary: /lunch/i
呢?是否可以将本机 (ObjC) 代码传递给 who() 选择器?是否有任何文件可以提供whose()
帮助?