gpt4 book ai didi

ios - 通过使用 Ekcalendar,我们如何通过单击删除操作来删除特定事件

转载 作者:行者123 更新时间:2023-11-28 21:30:09 25 4
gpt4 key购买 nike

通过使用 EventKit,我可以将事件添加到 iphone 日历,我可以使用 EkCalendar 创建一个新日历。但现在需要删除 iphone 日历中的单个事件。我怎样才能做到这一点。提前致谢

func retrieveYourCalendar() {
let calendars = eventStore.calendarsForEntityType(EKEntityType.Event)

if(yourReminderCalendar == nil) {
for calendar in calendars {
if calendar.title == "new" {
yourReminderCalendar = (calendar as EKCalendar)
// Exist = true
break
}
}

if(yourReminderCalendar == nil) {
yourReminderCalendar = EKCalendar(forEntityType: EKEntityType.Event, eventStore: eventStore)
yourReminderCalendar!.title = "new"
yourReminderCalendar!.source = eventStore.defaultCalendarForNewEvents.source
// var error: NSError?
do {
try eventStore.saveCalendar(yourReminderCalendar!, commit: true)
// self.calendarIdentifier = yourReminderCalendar!.calendarIdentifier
print("Event calender saved")

}
catch(_){}
}
}






}

最佳答案

在向日历添加事件时,将 eventIdentifier 存储在您的数据库或任何存储中。这将有助于识别要删除的特定事件。

通过使用以下代码,您可以删除基于标识符的事件,

objective-c :

EKEventStore *store = [[EKEventStore alloc] init]; 
[store requestAccessToEntityType:EKEntityTypeEvent completion:^(BOOL granted, NSError *error) {
if (!granted) return;
EKEvent* eventToRemove = [store eventWithIdentifier:savedEventId];
if (eventToRemove) {
NSError* err = nil;
[store removeEvent:eventToRemove span:EKSpanThisEvent commit:YES error:&err];
}
}];

Swift:根据开始日期和结束日期获取事件。

// Create an Event Store instance
let eventStore = EKEventStore();
eventStore.requestAccessToEntityType(EKEntityType.Event, completion: {
            (accessGranted: Bool, error: NSError?) in
            
            if accessGranted == true {
                var startDate=NSDate().dateByAddingTimeInterval(-60*60*24)

var endDate=NSDate().dateByAddingTimeInterval(60*60*24*3)

var predicate2 = eventStore.predicateForEventsWithStartDate(startDate, endDate: endDate, calendars: nil)



println("startDate:\(startDate) endDate:\(endDate)")

var eV = eventStore.eventsMatchingPredicate(predicate2) as [EKEvent]!



if eV != nil {

eventStore.removeEvent(eV, span:EKSpanFutureEvents, commit:true, error:&error)
}

            } else {
                return
            }
        })

检查 swift 的更新答案。仅供引用:我没有测试 swift 的代码。

关于ios - 通过使用 Ekcalendar,我们如何通过单击删除操作来删除特定事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36418389/

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