EKEvent警报AlertView在不到一秒钟内消失

时间:2012-11-22 11:15:19

标签: iphone events uialertview alarm

事件成功添加,并在事件开始时间之前播放10秒(用于测试目的)的警报。问题是警报触发(iPhone上的UIAlertView显示),但它在不到一秒的时间内消失。很奇怪......

可能是什么问题?

代码:

- (IBAction)addEvent:(id)sender {
    EKEventStore *eventStore = [[EKEventStore alloc] init];

    if ([eventStore respondsToSelector:@selector(requestAccessToEntityType:completion:)])
    {
        [eventStore requestAccessToEntityType:EKEntityTypeEvent completion:^(BOOL granted, NSError *error)
         {
             EKEvent *anEvent = [EKEvent eventWithEventStore:eventStore];
             anEvent.calendar = eventStore.defaultCalendarForNewEvents;
             anEvent.title = self.eventNameTextField.text;

             NSDate *date = self.datePicker.date;

             anEvent.startDate = date;
             anEvent.endDate = date;

             NSMutableArray *myAlarmsArray = [[NSMutableArray alloc] init];

             EKAlarm *alarm1 = [EKAlarm alarmWithRelativeOffset:-10];

             [myAlarmsArray addObject:alarm1];

             anEvent.alarms = myAlarmsArray;

             NSError *eventError;
             [eventStore saveEvent:anEvent span:EKSpanThisEvent error:&eventError];
         }];
    }
}

1 个答案:

答案 0 :(得分:0)

请参阅以下代码,希望它能为您提供帮助。

 EKEventStore *eventStore = [[EKEventStore alloc] init];  
    EKEvent *event = [EKEvent eventWithEventStore:eventStore];
   event.title  = [NSString stringWithFormat:@"%@'s Birthday",strName];
   NSDate *twoYearsFromNow = [NSDate dateWithTimeIntervalSinceNow:1577846275];
    double alarmAmountInSeconds = 60*60*9;
   EKAlarm *alarm = [EKAlarm alarmWithRelativeOffset:(1.0*alarmAmountInSeconds)];
   EKRecurrenceRule *recurrance;
   recurrance = [[EKRecurrenceRule alloc] initRecurrenceWithFrequency:EKRecurrenceFrequencyYearly interval:1 end:[EKRecurrenceEnd recurrenceEndWithEndDate:twoYearsFromNow]];
   NSMutableArray *arrayReccurence = [NSMutableArray arrayWithObject:recurrance];
   event.recurrenceRules = arrayReccurence;
   event.startDate = startDate;
    event.endDate  = [[NSDate alloc] initWithTimeInterval:600 sinceDate:event.startDate];
   event.allDay = true;
    event.alarms = [NSArray arrayWithObject:alarm];

   [event setCalendar:[eventStore defaultCalendarForNewEvents]];
   NSError *err;
    [eventStore saveEvent:event span:EKSpanThisEvent error:&err];