gpt4 book ai didi

ios - 事件工具包不在日历顶部的多天全天事件

转载 作者:可可西里 更新时间:2023-11-01 02:16:23 26 4
gpt4 key购买 nike

Event Kit 中跨越多天的全天事件显示在当天事件列表的底部。

例如,如果我有一个从 1 月 1 日到 1 月 3 日的多天全天事件,然后查看 1 月 2 日的日历。

1 月 2 日

  • 8-10am session
  • 中午 12 点 - 下午 1 点午餐
  • 全天事件*

代码

    let startDate = NSCalendar.currentCalendar().startOfDayForDate(Dates.dateObject)
let endDate = startDate.dateByAddingTimeInterval(Double((60 * 60 * 24))

let calendars = eventStore.calendarsForEntityType(.Event)
var selectedCalendars = [EKCalendar]()

for cal in calendars {
if (NSUserDefaults.standardUserDefaults().boolForKey(cal.calendarIdentifier) != false) {
selectedCalendars.append(cal)
}
}

let eventsPredicate = eventStore.predicateForEventsWithStartDate(startDate, endDate: endDate, calendars: selectedCalendars)

events = eventStore.eventsMatchingPredicate(eventsPredicate)

最佳答案

为了解决这个问题,谓词的开始日期和结束日期必须是 00:00:00 到 23:59:59(而不是 00:00:00 到 00:00:00)。

代码修改如下。

    let startDate = NSCalendar.currentCalendar().startOfDayForDate(Dates.dateObject)
let endDate = startDate.dateByAddingTimeInterval(Double(((60 * 60 * 24) - 1))

let calendars = eventStore.calendarsForEntityType(.Event)
var selectedCalendars = [EKCalendar]()

for cal in calendars {
if (NSUserDefaults.standardUserDefaults().boolForKey(cal.calendarIdentifier) != false) {
selectedCalendars.append(cal)
}
}

let eventsPredicate = eventStore.predicateForEventsWithStartDate(startDate, endDate: endDate, calendars: selectedCalendars)

events = eventStore.eventsMatchingPredicate(eventsPredicate)

关于ios - 事件工具包不在日历顶部的多天全天事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38092909/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com