我正在尝试向日历添加事件,但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]];
}}
答案 0 :(得分:0)
你不知道self.eventtime
是什么类型的,所以不可能给出明确的答案,但我可以说你得到的是nil
因为self.eventtime
中的日期不是您告诉NSDateFormatter
期望的格式。
我还建议将对象转换为字符串然后转换为日期可能也不是最有效的方法。也许NSDateComponent
可能更直接地做同样的工作?