event.startDate输出为null

时间:2012-12-13 12:20:15

标签: iphone ios ipad eventkit

我正在尝试向日历添加事件,但event.startDate输出为空。

event.startDate = [formatter dateFromString:dateandtime];

任何人都可以告诉我原因吗?

我检查了格式化程序,一切都很好..但我没有保存事件。

请找到供您参考的代码。

-(IBAction)ADDEvent
{

    NSDateFormatter *formatter = [[NSDateFormatter alloc]init];
    [formatter setTimeZone:[NSTimeZone timeZoneWithName:@"GMT"]];
    [formatter setDateFormat:@"EEE, dd MMM yyyy HH:mm:ss ZZZ +-HHMM"]; // SPOT the difference in this line
    NSString *dateandtime =[NSString stringWithFormat:@"%@",self.eventtime];

    EKEventStore *eventstore = [[EKEventStore alloc] init];
    EKEvent *event  = [EKEvent eventWithEventStore: eventstore];
    event.title     = self.eventname;
    event.startDate = [formatter dateFromString:dateandtime];
    event.endDate=[[formatter dateFromString:dateandtime] dateByAddingTimeInterval:(30*60)];
    NSLog(@"%@",[[formatter dateFromString:dateandtime] dateByAddingTimeInterval:(30*60)]);
         NSLog(@"%@",dateandtime);
    [event setCalendar:[eventstore defaultCalendarForNewEvents]];

     }}

1 个答案:

答案 0 :(得分:0)

你不知道self.eventtime是什么类型的,所以不可能给出明确的答案,但我可以说你得到的是nil因为self.eventtime中的日期不是您告诉NSDateFormatter期望的格式。

我还建议将对象转换为字符串然后转换为日期可能也不是最有效的方法。也许NSDateComponent可能更直接地做同样的工作?