【问题标题】:How to Alert and Alarm property get from EKEvent class in Objective-C?如何从 Objective-C 中的 EKEvent 类中获取警报和警报属性?
【发布时间】:2016-04-07 14:33:12
【问题描述】:

我已从设备及其属性中获取所有事件,但我无法在EKEvent 中获取警报和警报属性

NSPredicate *fetchCalendarEvents = [store predicateForEventsWithStartDate:currentDate endDate:eventDate calendars:nil];

eventList = [store eventsMatchingPredicate:fetchCalendarEvents];
calanderDict =[[NSMutableDictionary alloc]init];

for(int i=0; i < eventList.count; i++){
   NSLog(@"Event Title:%@", [[eventList objectAtIndex:i] title]);
   NSLog(@"Event StartDate:%@", [[eventList objectAtIndex:i] startDate]);
   NSLog(@"Event EndDate:%@", [[eventList objectAtIndex:i] endDate]);
   NSLog(@"Event Notes:%@", [[eventList objectAtIndex:i]lastModifiedDate]);
   NSLog(@"Event Notes:%@", [[eventList objectAtIndex:i]notes]);
   NSLog(@"Event Alarms:%@", [[eventList objectAtIndex:i]alarms]);
   NSLog(@"Event Alarms Alert:%@", [[eventList objectAtIndex:i]alertTitle]);
}

【问题讨论】:

    标签: ios objective-c ekevent ekeventstore ekeventkit


    【解决方案1】:

    eventsMatchingPredicate 返回一个EKEvent 的数组。
    事件的alarms 属性返回EKAlarm 的数组。

    EKEvent / EKCalendarItem 没有属性 alertTitle

    为了清楚地表明这是您使用快速枚举的代码

    NSPredicate *fetchCalendarEvents = [store predicateForEventsWithStartDate:currentDate endDate:eventDate calendars:nil];
    
    eventList = [store eventsMatchingPredicate:fetchCalendarEvents];
    calanderDict = [[NSMutableDictionary alloc] init];
    
    for (EKEvent *event in eventList) {
       NSLog(@"Event Title:%@", event.title);
       NSLog(@"Event StartDate:%@", event.startDate);
       NSLog(@"Event EndDate:%@", event.endDate);
       NSLog(@"Event Last Modified Date:%@", event.lastModifiedDate);
       NSLog(@"Event Notes:%@", event.notes);
       if (event.hasAlarms) {
          for (EKAlarm *alarm in event.alarms) {
              NSLog(@"Alarm AbsoluteDate:%@", alarm.absoluteDate);
              NSLog(@"Alarm Type:%@", alarm.type);
          }
       }
    }
    

    【讨论】:

    • 在你的代码中,alarm.absolute 和 alarm.type 都为空,即使我设置了两者,而且 alarm.type 不起作用...@vadian
    • 对不起,alarm.type 的类型是Int,所以应该是NSLog(@"Alarm Type:%ld", alarm.type); 代码只是一个访问不同类属性的示例。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-04
    相关资源
    最近更新 更多