【发布时间】:2019-03-20 15:41:28
【问题描述】:
我将所有日历加载到一个表格视图中,其中每个日历都表示在一个单元格中。 现在我想在点击单元格时打印单元格日历的所有事件。 问题是,通过您看到的代码,我得到了 all 日历的事件。
如何告诉函数只查看我在 tableview 中点击的日历?
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let calendarTitle = calendars![indexPath.row].title
print(calendarTitle)
let calendar = Calendar.current
print("Current \(calendar)")
var oneDayAgoComponents = DateComponents()
oneDayAgoComponents.day = -1
let oneDayAgo = calendar.date(byAdding: oneDayAgoComponents, to: Date())
var oneDayFromNowComponents = DateComponents()
oneDayFromNowComponents.day = 7
let oneDayFromNow = calendar.date(byAdding: oneDayFromNowComponents, to: Date())
var predicate: NSPredicate? = nil
if let anAgo = oneDayAgo, let aNow = oneDayFromNow {
predicate = eventStore.predicateForEvents(withStart: anAgo, end: aNow, calendars: nil)
}
var events: [EKEvent]? = nil
if let aPredicate = predicate {
events = eventStore.events(matching: aPredicate)
for event in events! {
print(event.title)
}
}
}
【问题讨论】:
-
predicate = eventStore.predicateForEvents(withStart: anAgo, end: aNow, calendars: nil)不考虑您选择的日历?