我在不同的地方遇到以下错误,例如当我删除某个事件或添加一个事件时。在该描述中,它显示没有设置日历但是我调试了事件日历并且已经设置了日历我很困惑。
错误域= EKErrorDomain代码= 1“未设置日历。” UserInfo = 0x756a8d0 {NSLocalizedDescription =未设置日历。}
任何人都可以建议我是否有任何chcekpoints或我做错了什么?
提前致谢
答案 0 :(得分:8)
我知道这个问题的标题引用了iOS5,但我在iOS5及更高版本上运行了一个应用程序。我的iOS6用户由于各种原因遇到了这个问题 - 如果可以的话,你需要使用新的iOS6方法才能首先访问事件存储。
- (void)requestAccessToEntityType:(EKEntityType)entityType completion:(EKEventStoreRequestAccessCompletionHandler)completion
请务必先检查API的可用性,例如
EKEventStore* eventStore = [[EKEventStore alloc] init];
if([eventStore respondsToSelector:@selector(requestAccessToEntityType:completion:)]) {
// >= iOS 6
[eventStore requestAccessToEntityType:EKEntityTypeEvent
completion:^(BOOL granted, NSError *error) {
// may return on background thread
dispatch_async(dispatch_get_main_queue(), ^{
if (granted) {
// continue
} else {
// display error
}
});
}];
} else {
// < iOS 6
// continue
}
答案 1 :(得分:7)
我想通了,在创建新的EKEvent时尝试这个:
[event setCalendar:[eventStore defaultCalendarForNewEvents]];