【问题标题】:event.startDate output is nullevent.startDate 输出为空
【发布时间】:2012-12-01 08:05:07
【问题描述】:

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

     }}

【问题讨论】:

标签: iphone ios ipad eventkit


【解决方案1】:

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

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

【讨论】:

  • 我自己。 eventtime 的格式为“Mon, 17 Dec 2012 08:00:00 CST”。
  • 它是什么数据类型?如果它已经是一个字符串,为什么要把它复制到另一个字符串中?
  • self.eventtime 是什么类型?是NSDate 吗?是NSString 吗? NSTimeInterval?
猜你喜欢
  • 2018-05-08
  • 2014-10-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-06-16
  • 2014-05-07
  • 2015-02-24
  • 2016-10-30
相关资源
最近更新 更多