IOS 往手机日历里增,删,查,该事件提醒

本文介绍了如何在iOS中进行日历事件的增删查改,包括准备工作、日历权限检测、新增事件、删除事件、查找事件以及通过删除再添加的方式实现修改事件。并强调了在iOS10及以上版本需在info.plist中配置日历访问权限。
摘要由CSDN通过智能技术生成

之前对这个块也不是很熟悉,然后在一个项目上使用过,所以这里就记下笔记,仅供参考。

准备工作

1.需要在工程中引入EventKit框架,#import <EventKit/EventKit.h>

2.引入了此框架后,我们可以用来操作系统日历和提醒事项,这两个app都是IOS系统自带的功能。

3.这里有个EKEventStore,相当于一个数据库身份。因为使用比较频繁,建议创建成单例模式。

4.添加日历访问权限,IOS10之后需要往info.plist里面配置日历访问权限(NSCalendarsUsageDescription

 

日历权限检测

//日历权限检测
- (void)checkCalendarAuthorizationCompletion:(void(^)(BOOL granted, NSError *error))completion
{
    //EKEventStore
    //检查日历授权状态
    /*
     EKAuthorizationStatusNotDetermined = 0, //未进行授权选择
     EKAuthorizationStatusRestricted, //未授权,且用户无法更新,如家长控制情况下
     EKAuthorizationStatusDenied, //用户拒绝App使用
     EKAuthorizationStatusAuthorized, //已授权,可使用
     */
    EKAuthorizationStatus authorizationStatus = [EKEventStore authorizationStatusForEntityType:EKEntityTypeEvent];
    if (authorizationStatus == EKAuthorizationStatusNotDetermined || authorizationStatus == EKAuthorizationStatusDenied) {
        //未进行授权选择
        [[self sharedEKEventStore] requestAccessToEntityType:EKEntityTypeEvent completion:^(BOOL granted, NSError * _Nullable error) {
            if (granted) {
                DLog(@"授权成功");
                if (completion) {
                    completion(true,nil);
                }
            }else{
                DLog(@"授权失败,error:%@",error);
                if (completion) {
                    completion(false,error);
                }
            }
        }];
    }else if (EKAuthorizationStatusRestricted == authorizationStatus){
        if (completion) {
            completion(false,nil);
        }
    }else if (EKAuthorizationStatusAuthorized == authorizationStatus){
        if (completion) {
            completion(true,nil);
        }
    }
}

 

新增日历事件

//新增日历事件
- (void)addCalendarStartDate:(NSString *)startDate addEndDate:(NSString *)endDate alarms:(NSArray *)alarmArray title:(NSString *)title
{
    EKEvent *event = [EKEvent eventWithEvent
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值