首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在iOS中设置特定时间的提醒,并在间隔2分钟后反复显示(5次)

如何在iOS中设置特定时间的提醒,并在间隔2分钟后反复显示(5次)
EN

Stack Overflow用户
提问于 2013-09-27 05:02:55
回答 2查看 4.4K关注 0票数 2

我有价值就像

createdate = "2013-09-24 04:29:30";

我必须在这段时间设置一个提醒,.I正在使用本地通知来设置提醒,但我不知道如何在它发生后删除它,以及如何在提醒时间的2分钟后再次调用它。

提前谢谢。

代码语言:javascript
复制
EKEventStore *eventStore = [[EKEventStore alloc]init];
EKEvent *event = [EKEvent eventWithEventStore:eventStore];
[event setCalendar:[eventStore defaultCalendarForNewEvents]];

//no need to fill all fill which one u want to set
event.title =@"eventTitle";
event.location = @"eventLocation";
event.notes = @"eventNote";
event.startDate =  datePicker.date; //set date
event.URL = [NSURL URLWithString:@"url"];

//for alert set the aleram and notify the user rest is taken care by calendar for u

   EKAlarm *alaram = [[EKAlarm alloc]init];
   [alaram setAbsoluteDate:datePicker.date];
   [event addAlarm:alaram];
//finally add it to calendar
NSError *err = nil;
BOOL complete = [eventStore saveEvent:event span:EKSpanThisEvent error:&err];
if(err)
{
    NSLog(@"error in storing event");
}
else
    NSLog(@"successfully added");

if(complete)
{
    NSLog(@"successfully added");
}
else
{
    NSLog(@"error in storing event");
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-09-27 05:17:42

我正在张贴与将事件添加到日历和设置剩余时间有关的代码,希望您能有一些想法。

代码语言:javascript
复制
 - (void)addEventToCalendar
 {

    EKEventStore *eventStore = [[EKEventStore alloc]init];
    if([eventStore respondsToSelector:@selector(requestAccessToEntityType:completion:)])            {
// iOS 6 and later
[eventStore requestAccessToEntityType:EKEntityTypeEvent completion:^(BOOL granted,   NSError *error) {
    if (granted){

    //for IOS > 6.0
   EKEvent *event = [EKEvent eventWithEventStore:eventStore];
   [event setCalendar:[eventStore defaultCalendarForNewEvents]];

  //no need to fill all fill which one u want to set
   event.title =@"eventTitle";
   event.location = @"eventLocation";
   event.notes = @eventNote";
   event.startDate =  eventStartDate; //set date
   event.endDate = eventEndTime;
   event.URL = [NSURL URLWithString:@"url"];

  //for alert set the aleram and notify the user rest is taken care by calendar for u 

   switch (evetReminder) {   //set alaram for 5mins, 15mins ,20mins etc
    case 0:
        self.selectedAlertSetting = @"None";
        break;

    case 1:
    {
        EKAlarm *alaram = [[EKAlarm alloc]init];
        [alaram setAbsoluteDate:eventStartDate];
        [event addAlarm:alaram];
        [alaram release];
        break;
    }


    case 2:
    {
        NSTimeInterval aInterval = -5 *60;
        EKAlarm *alaram = [EKAlarm alarmWithRelativeOffset:aInterval];
        [event addAlarm:alaram];
        break;
    }
    case 3:
    {
        NSTimeInterval aInterval = -15 * 60;
        EKAlarm *alaram = [EKAlarm alarmWithRelativeOffset:aInterval];
        [event addAlarm:alaram];
        break;
    }
    case 4:
    {
        NSTimeInterval aInterval = -30 * 60;
        EKAlarm *alaram = [EKAlarm alarmWithRelativeOffset:aInterval];
        [event addAlarm:alaram];
        break;
    }
    case 5:
    {
        NSTimeInterval aInterval = -1 * 60 * 60;
        EKAlarm *alaram = [EKAlarm alarmWithRelativeOffset:aInterval];
        [event addAlarm:alaram];
        break;
    }
    case 6:
    {
        NSTimeInterval aInterval = -2 * 60 * 60;
        EKAlarm *alaram = [EKAlarm alarmWithRelativeOffset:aInterval];
        [event addAlarm:alaram];
        break;
    }

    case 7:
    {
        NSTimeInterval aInterval = -1 * 24 * 60 * 60;
        EKAlarm *alaram = [EKAlarm alarmWithRelativeOffset:aInterval];
        [event addAlarm:alaram];
        break;
    }
    case 8:
    {
        NSTimeInterval aInterval = -2 * 24 * 60 * 60;
        EKAlarm *alaram = [EKAlarm alarmWithRelativeOffset:aInterval];
        [event addAlarm:alaram];
        break;
    }
    default:
        break;
}

  //finally add it to calendar
  NSError *err = nil;
  BOOL complete = [eventStore saveEvent:event span:EKSpanThisEvent error:&err];
  if(err)
 {
    NSLog(@"error in storing event");
 }
 else
    NSLog(@"successfully added");

 if(complete)
 {
     NSLog(@"successfully added");
 }
 else
 {
    NSLog(@"error in storing event");
 }

 [eventStore release];

 }

 }];

 }
  else
 {
    //for IOS < 6.0
   // perform  same action hear
   EKEvent *event = [EKEvent eventWithEventStore:eventStore];
   [event setCalendar:[eventStore defaultCalendarForNewEvents]];

  //no need to fill all fill which one u want to set
   event.title =@"eventTitle";
   event.location = @"eventLocation";
   event.notes = @eventNote";
   event.startDate =  eventStartDate; //set date
   event.endDate = eventEndTime;
   event.URL = [NSURL URLWithString:@"url"];

  //for alert set the aleram and notify the user rest is taken care by calendar for u 

   switch (evetReminder) {   //set alaram for 5mins, 15mins ,20mins etc
    case 0:
        self.selectedAlertSetting = @"None";
        break;

    case 1:
    {
        EKAlarm *alaram = [[EKAlarm alloc]init];
        [alaram setAbsoluteDate:eventStartDate];
        [event addAlarm:alaram];
        [alaram release];
        break;
    }


    case 2:
    {
        NSTimeInterval aInterval = -5 *60;
        EKAlarm *alaram = [EKAlarm alarmWithRelativeOffset:aInterval];
        [event addAlarm:alaram];
        break;
    }
    case 3:
    {
        NSTimeInterval aInterval = -15 * 60;
        EKAlarm *alaram = [EKAlarm alarmWithRelativeOffset:aInterval];
        [event addAlarm:alaram];
        break;
    }
    case 4:
    {
        NSTimeInterval aInterval = -30 * 60;
        EKAlarm *alaram = [EKAlarm alarmWithRelativeOffset:aInterval];
        [event addAlarm:alaram];
        break;
    }
    case 5:
    {
        NSTimeInterval aInterval = -1 * 60 * 60;
        EKAlarm *alaram = [EKAlarm alarmWithRelativeOffset:aInterval];
        [event addAlarm:alaram];
        break;
    }
    case 6:
    {
        NSTimeInterval aInterval = -2 * 60 * 60;
        EKAlarm *alaram = [EKAlarm alarmWithRelativeOffset:aInterval];
        [event addAlarm:alaram];
        break;
    }

    case 7:
    {
        NSTimeInterval aInterval = -1 * 24 * 60 * 60;
        EKAlarm *alaram = [EKAlarm alarmWithRelativeOffset:aInterval];
        [event addAlarm:alaram];
        break;
    }
    case 8:
    {
        NSTimeInterval aInterval = -2 * 24 * 60 * 60;
        EKAlarm *alaram = [EKAlarm alarmWithRelativeOffset:aInterval];
        [event addAlarm:alaram];
        break;
    }
    default:
        break;
  }

  //finally add it to calendar
  NSError *err = nil;
  BOOL complete = [eventStore saveEvent:event span:EKSpanThisEvent error:&err];
  if(err)
 {
    NSLog(@"error in storing event");
 }
 else
    NSLog(@"successfully added");

 if(complete)
 {
     NSLog(@"successfully added");
 }
 else
 {
    NSLog(@"error in storing event");
 }



[eventStore release];
  }

 }
票数 4
EN

Stack Overflow用户

发布于 2013-09-27 07:19:55

这是工作代码..:)

代码语言:javascript
复制
  EKEventStore *eventStore = [[EKEventStore alloc] init] ;
  EKEvent *event = [EKEvent eventWithEventStore:eventStore];
   if([eventStore respondsToSelector:@selector(requestAccessToEntityType:completion:)]) {
    // iOS 6 and later
    [eventStore requestAccessToEntityType:EKEntityTypeEvent completion:^(BOOL granted,   NSError *error) {
        if (granted){
            //---- codes here when user allow your app to access theirs' calendar.
            [event setCalendar:[eventStore defaultCalendarForNewEvents]];
            //no need to fill all fill which one u want to set
            event.title =@"eventTitle";
            event.location = @"eventLocation";
            event.notes = @"eventNote";
            event.startDate =  datePicker.date; //set date
            event.URL = [NSURL URLWithString:@"url"];
            NSDate *newDate = [datePicker.date dateByAddingTimeInterval:24.0f * 60.0f * 60.0f + 120.0f];
            event.endDate= newDate ;
            //for alert set the aleram and notify the user rest is taken care by calendar for u
            EKAlarm *alaram = [[EKAlarm alloc]init];

            [alaram setAbsoluteDate:datePicker.date];
            [event addAlarm:alaram];
            //finally add it to calendar
            NSError *err = nil;
            BOOL complete = [eventStore saveEvent:event span:EKSpanThisEvent error:&err];
            if(err)
            {
                NSLog(@"error in storing event");
            }
            else
                NSLog(@"successfully added");
            if(complete)
            {
                NSLog(@"successfully added");
            }
            else
            {
                NSLog(@"error in storing event");
            }
        }else
        {
            //----- codes here when user NOT allow your app to access the calendar.
        }
    }];
}
else {
    //---- codes here for IOS < 6.0.
    //[self performCalendarActivity:eventStore];
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19043069

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档