您的位置:首页 > 移动开发 > IOS开发

关于iOS 插入日历功能以报错Error Domain=EKErrorDomain Code=1 "尚未设定日历。" UserInfo={NSLocalizedDescription=尚未设定日历。}

2017-12-12 15:30 1381 查看

处理报错


Error Domain=EKErrorDomain Code=1 "尚未设定日历。" UserInfo={NSLocalizedDescription=尚未设定日历。}

出现这个错误的原因是由于你在为事件设置日历时,设置了nil,如下:


[event setCalendar:[self.eventStore defaultCalendarForNewEvents]];
也就是 [self.eventStore defaultCalendarForNewEvents]
为nil。
出现这个问题的原因并不是代码出现了问题,暂时我也没有办法从代码上解决这个问题,因为现在用户自己都无法在日历中插入事件,解决办法如下图



自定义日历

如果你想添加属于自己App的日历的话,可以这样

- (EKCalendar *)getCalendar{

    EKCalendar *calendar =
nil;

    BOOL needAdd =
YES;

    for (EKCalendar *ekcalendarin
[_eventStorecalendarsForEntityType:EKEntityTypeEvent]) {

        if ([ekcalendar.titleisEqualToString:@"My calendar"]) {

            needAdd = NO;

            calendar = ekcalendar;

            break;

        }

    }

    if (needAdd) {

        EKSource *localSource =
nil;

        for (EKSource *sourcein_eventStore.sources)

        {

            //iCloud 是否存在

            if (source.sourceType ==EKSourceTypeCalDAV && [source.titleisEqualToString:@"iCloud"])

            {

                localSource = source;

                break;

            }

        }

        if (localSource ==
nil)

        {

            //本地 是否存在

            for (EKSource *sourcein_eventStore.sources) {

                if (source.sourceType ==EKSourceTypeLocal)

                {

                    localSource = source;

                    break;

                }

            }

        }

        

        if (localSource) {

            calendar = [EKCalendarcalendarForEntityType:EKEntityTypeEventeventStore:_eventStore];

            calendar.source = localSource;

            calendar.title =
APPSetting.kApp_Name;//自定义日历标题

            calendar.CGColor = [UIColoryellowColor].CGColor;//自定义日历颜色

            NSError* error;

            [_eventStore
saveCalendar:calendar commit:YESerror:&error];

        }

    }

    return calendar;

}

将这个方法生成的日历设置为事件的日历

[event setCalendar:[self  getCalendar]];
效果如下



iOS 日历插入事件基本功能

请参照
http://www.jianshu.com/p/2642b0e3cac5
这边就不予以赘述了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐