博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS9中如何在日历App中创建一个任意时间之前开始的提醒(三)
阅读量:6831 次
发布时间:2019-06-26

本文共 1134 字,大约阅读时间需要 3 分钟。

大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处.

如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;)


四.创建任意时间之前开始的提醒

现在我们找到了指定源中的指定日历,剩下要做的就是在日历中创建一个事件,并且设置其对于的提醒.我们可以创建2种类型的事件:单一的和循环的(或者称之为重复的).这里为了简单起见(KISS),我们只创建单一的事件:

-(void)addAlarmToCalendar:(EKCalendar*)calendar inStore:(EKEventStore*)store{    NSDate *startDate = [NSDate dateWithTimeIntervalSinceNow:60];    NSDate *endDate = [startDate dateByAddingTimeInterval:20.f];    EKEvent *event = [EKEvent eventWithEventStore:store];    event.calendar = calendar;    event.startDate = startDate;    event.endDate = endDate;    EKAlarm *alarm = [EKAlarm alarmWithRelativeOffset:-7.f];    event.title = @"Event with Alarm";    [event addAlarm:alarm];    NSError *saveError = nil;    if ([store saveEvent:event span:EKSpanThisEvent error:&saveError]) {        NSLog(@"Saved an event that fires 60 seconds from now.");    }else{        NSLog(@"Failed to save the event Error is %@",saveError);    }}

我们来解释下上述方法的含义:

首先设置好事件的开始和结束时间.

然后关联事件和日历.接下来创建一个提醒对象EKAlarm,并将其开始时间设置为相对于事件开始时间的前7秒钟.
使用 addAlarm:方法将提醒与该事件对象相关联.
最后我们将事件保存到日历数据库中.

我们首先在模拟器上执行一下:

这里写图片描述

可以看到提醒时间为7秒之前,最后我们在真机上运行一下:

这里写图片描述

注意在真机上运行别忘了将日历源改为iCloud,而在模拟器上日历源为Default.

你可能感兴趣的文章
NHibernate学习总结
查看>>
html转译java语言
查看>>
oracle中时间转换的问题
查看>>
如何设计Android App测试用例
查看>>
sysbench
查看>>
详解MySQL读写分离
查看>>
dns服务器在做nslookup测试的时候,出现dns timeout 2 seconds的错误解释
查看>>
使用监控宝监控snmp性能经验实录
查看>>
開發Android, 從Eclipse官網下載Eclipse開始,從無到有安裝一遍
查看>>
逻辑判断
查看>>
mockcpp的so加载失败问题
查看>>
dhcp在企业网络中的实现 centos系统
查看>>
RHEL5下 JDK-7u4(rpm)+Tomcat-7.0+JavaCenterHome
查看>>
VMware Workstation下VMnet1等虚拟网卡与主机网卡之间的关系
查看>>
lvs、Nginx和haproxy比较
查看>>
oracle查看所有表信息
查看>>
javascript基础-窗口对象(window)
查看>>
centos7架设zabbix3.0
查看>>
css中内容出现滚动时不影响布局解决办法
查看>>
jmeter与java_selenium自动化
查看>>