- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在尝试从我的应用程序中保存/检索提醒,但出于某种原因,EKReminder 似乎没有被保存。这是我的代码:
EKEventStore * _eventStore = [[EKEventStore alloc] init];
[_eventStore requestAccessToEntityType:EKEntityTypeReminder completion:^(BOOL granted, NSError *error) {
//create a new calendar for reminders.
EKCalendar *calendar = [EKCalendar calendarForEntityType:EKEntityTypeReminder eventStore:_eventStore];
EKSource *localSource = nil;
for (EKSource *source in _eventStore.sources)
if (source.sourceType == EKSourceTypeLocal)
{
localSource = source;
break;
}
calendar.source = localSource;
self.calendarIdentifier = calendar.calendarIdentifier;
EKReminder *reminder = [EKReminder reminderWithEventStore:_eventStore];
reminder.calendar = calendar;
reminder.title = @"Test Reminder";
reminder.startDateComponents = [[NSCalendar currentCalendar] components:NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit fromDate:[NSDate date]];
reminder.completionDate = [NSDate dateWithTimeIntervalSinceNow:100];
EKAlarm *alarm = [EKAlarm alarmWithAbsoluteDate:[NSDate dateWithTimeIntervalSinceNow:100]];
reminder.alarms = @[alarm];
NSError *errorOb = nil;
BOOL saved = [_eventStore saveReminder:reminder commit:YES error:&errorOb];
if (saved) NSLog(@"Saved Reminder");
else NSLog(@"Failed to save reminder");
}];
稍后,我会尝试验证提醒是否确实已保存。我使用这段代码来做到这一点:
NSPredicate *predicate = [_eventStore predicateForRemindersInCalendars:nil];
[_eventStore fetchRemindersMatchingPredicate:predicate completion:^(NSArray *reminders) {
for (EKReminder *reminder in reminders) {
NSLog(@"Reminder Title: %@", reminder.title);
}
}];
我的新提醒永远不会出现!
谁能告诉我我做错了什么??
最佳答案
如果授权状态为 EKAuthorizationStatusNotDetermined
,您只需调用 -requestAccessToEntityType:completion:
。您可以使用 +[EKEventStore authorizationStatusForEntityType:]
检查授权状态。
完成 block 只会在您第一次调用 -requestAccessToEntityType:completion
时被调用。在模拟器上它甚至不会被调用一次,因为在模拟器上您的应用程序已经可以访问了。
EKEventStore * _eventStore = [[EKEventStore alloc] init];
EKAuthorizationStatus authorizationStatus = [EKEventStore authorizationStatusForEntityType:EKEntityTypeReminder];
if (authorizationStatus == EKAuthorizationStatusNotDetermined) {
[_eventStore requestAccessToEntityType:EKEntityTypeReminder completion:^(BOOL granted, NSError *error) {
if (granted) {
[self createNewReminder];
} else {
[self showNowAccessAlert];
}
}];
} else {
if (authorizationStatus == EKAuthorizationStatusAuthorized) {
[self createNewReminder];
} else {
[self showNowAccessAlert];
}
}
关于ios - 无法在 iOS 6 中保存 EKReminder,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15237014/
我不明白为什么这段代码不再有效(它曾经有效)。我创建了一个 UIDatePicker,它在指定日期触发日历中的提醒。我不知道为什么我会收到“没有设置日历”的错误,因为我确实设置了它(如代码中所示) -
我的 iOS 应用程序读取由 native 提醒应用程序或 Siri 创建的 EKReminders。 我可以访问 EKEventStore,我可以成功读取提醒及其详细信息,例如标题、警报、优先级以及
是否可以重新订购EKReminders在 EKCalendar类型的提醒?在 native 提醒应用程序中,这是可能的,但我似乎无法在 API 中找到此选项。 最佳答案 因此,EKCalendarIt
我正在为日历设置事件。该代码可以正常工作,但我会检查我的设备日历上是否设置了事件。它没有显示任何内容。我在 ios6 中这样做,当我在 ios5 中这样做时,它工作正常。 最佳答案 这对我有用,你也可
我正在尝试根据本教程创建提醒,尝试将 Swift 1 更改为 Swift 2 代码: http://www.techotopia.com/index.php/Using_iOS_8_Event_Kit
从 EKEventStore 加载提醒时,确定提醒的重复频率类型的最佳方法是什么? 到目前为止,我已经能够使用以下方法查看提醒是否包含 recurringRule: if reminder.hasRe
我已经使用 EKReminder 保存了一个提醒,现在我想从 EKReminder 中删除这个提醒。我有删除提醒的日期和时间。我尝试使用 NSPRedicate,但它对我不起作用。 我正在使用这段代码
有没有办法对日历或提醒进行排序?我还没有找到 sortIndex 属性或类似的东西......提醒应用如何对项目进行排序? 最好的问候 最佳答案 目前在 iOS 6 SDK 中没有公开访问提醒应用程序
[更新:我提交了一份官方 Apple 开发者反馈请求,要求更新 EventKit API 和文档] [更新:我联系了 Apple 支持,他们说要阅读文档......所以我认为 Matt 是正确的,它根
我正在将我的应用程序与 EventKit 集成,并监听 EKEventStoreChangedNotifications。当有人进来时,我想看看自上次更新以来哪些提醒发生了某种变化。我曾希望我可以使用
我有一个简短的问题要问熟悉 Event Kit 的人... 我正在创建循环提醒,我希望在每次重复时响起警报。但是,文档建议我只能创建一个带有绝对日期或相对偏移量的警报。每次提醒再次出现时,有没有办法让
我正在尝试从我的应用程序中保存/检索提醒,但出于某种原因,EKReminder 似乎没有被保存。这是我的代码: EKEventStore * _eventStore = [[EKEventStore
我正在尝试使用 EventKit,对事件与提醒的比较感到困惑。 您是否需要获得单独的权限才能访问提醒和事件? 我知道有 self.eventStore requestAccessToEntityTyp
我有一段代码尝试使用 OS X 10.8 及更高版本中的 EventKit 框架保存通用提醒。这是我的代码片段: NSLog(@"Creating reminder."); EKEventStore
我想保存提醒,但是当我设置 StartDateComponents 时,它总是显示日期组件无效。我尝试了多种方法(你可以看到我的注释代码)来设置该值,但失败了。 EKReminder *reminde
我是一名优秀的程序员,十分优秀!