0

我正在尝试将事件添加到日历,但 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]];

     }}
4

1 回答 1

0

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

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

于 2012-12-13T13:04:36.503 回答