从iOS日历应用程序中删除EKEventStore中的EKEvent

时间:2014-04-23 06:01:20

标签: ios iphone

我使用以下代码在iPhone的默认日历上添加了一个事件:

EKEventStore *store=[[EKEventStore alloc] init];
    [store requestAccessToEntityType:EKEntityTypeEvent completion:^(BOOL granted, NSError *error) {
        if (!granted) {
            return ;
        }
        EKEvent *event=[EKEvent eventWithEventStore:store];
        event.title=@"This is the event";
        event.startDate=[NSDate date];
        event.endDate =[event.startDate dateByAddingTimeInterval:60*60];
        event.allDay=YES;
        NSURL *url=[NSURL URLWithString:@"http://www.google.com"];
        event.URL=url;
        [event setCalendar:[store defaultCalendarForNewEvents]];
        NSError *errr=nil;
        [store saveEvent:event span:EKSpanThisEvent commit:YES error:&errr]; //        NSLog(@"%@",errr); //        NSLog(@"%@",event.eventIdentifier);

    }];

现在我要删除此事件。 我试过的代码是:

EKEventStore *store1=[[EKEventStore alloc]init];
            NSPredicate *predicate=[store1 predicateForEventsWithStartDate:[[tableViewScheduleArray objectAtIndex:btn.tag] objectForKey:@"Schedule_Date"] endDate:[[tableViewScheduleArray objectAtIndex:btn.tag] objectForKey:@"Schedule_End_Time"] calendars:nil];
            NSArray *arr=[store eventsMatchingPredicate:predicate];
            dispatch_async(dispatch_get_main_queue(), ^{
                [store1 removeEvent:[arr objectAtIndex:0] span:EKSpanThisEvent commit:YES error:nil];
            });

它没有用,但它也没有导致错误。

我已经尝试了Stack Overflow的几段代码,但它们都没有用。

1 个答案:

答案 0 :(得分:0)

我得到了解决方案, 这是我的一个愚蠢的错误。

属性“store”未声明为强。 因为我改变了它。

以上代码工作正常。