Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/96.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS:未保存事件。需要帮助调试吗_Ios_Xcode - Fatal编程技术网

iOS:未保存事件。需要帮助调试吗

iOS:未保存事件。需要帮助调试吗,ios,xcode,Ios,Xcode,以下是addEvent操作的完整代码 - (IBAction)addEventBtnPressed:(id)sender { EKEvent *myEvent = [EKEvent eventWithEventStore:self.eventStore]; myEvent.title = self.eventTitle.text; myEvent.startDate = self.eventStartDate; myEvent.endDate = self.eve

以下是addEvent操作的完整代码

- (IBAction)addEventBtnPressed:(id)sender
{
    EKEvent *myEvent = [EKEvent eventWithEventStore:self.eventStore];
    myEvent.title = self.eventTitle.text;
    myEvent.startDate = self.eventStartDate;
    myEvent.endDate = self.eventEndDate;
    myEvent.allDay = NO;

    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"MMMM dd hh:mma"];
    NSString *startTestDate = [dateFormatter stringFromDate:self.eventStartDate];
    NSString *endTestDate = [dateFormatter stringFromDate:self.eventEndDate];
    NSLog(@"Test title String:%@", myEvent.title);
    NSLog(@"Test Start Date String:%@", startTestDate);
    NSLog(@"Test Start Date String:%@", endTestDate);

    [myEvent setCalendar:[self.eventStore defaultCalendarForNewEvents]];
    NSError *err;

    [self.eventStore saveEvent:myEvent span:EKSpanThisEvent error:&err];

    if (err == noErr) {
        UIAlertView *alert = [[UIAlertView alloc]
                              initWithTitle:@"Event Created"
                              message:@"Yay!?"
                              delegate:nil
                              cancelButtonTitle:@"Okay"
                              otherButtonTitles:nil];
        [alert show];
    }
}
日志:

2014-10-28 04:44:18.881 Calendar[2668:1628432] Test title String:jtjtjtjrj
2014-10-28 04:44:18.882 Calendar[2668:1628432] Test Start Date String:October 30 12:00AM
2014-10-28 04:44:18.882 Calendar[2668:1628432] Test Start Date String:October 30 01:00AM
在我看来,代码并没有什么问题,我也不知道为什么在常规日历中签入时事件没有保存。经过几个小时的努力,我被难倒了。任何帮助都将不胜感激

更新:

我在viewDidLoad上调用setDateLabels()方法,一旦停止调用此方法,事件将再次正确添加。我不明白为什么这会有任何影响。代码如下所示:

- (void)setDateLables:(NSDate*)firstSelectedDate
{
    [self.datePicker setDate:firstSelectedDate];
    NSDate *startDate = firstSelectedDate;
    NSTimeInterval anHourAfter = 1 * 60 * 60;
    NSDate *endDate = [startDate dateByAddingTimeInterval:anHourAfter];
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"MMMM dd hh:mma"];
    self.eventStartDate = startDate;
    self.eventEndDate = endDate;
    self.startDateLabel.text = [dateFormatter stringFromDate:startDate];
    self.endDateLabel.text = [dateFormatter stringFromDate:endDate];
}

我怀疑
NSDate*endDate=[startDate-dateByAddingTimeInterval:anHourAfter]有一些意外的行为。任何帮助都将不胜感激

我把它固定在一行代码中:
只要去掉
[self.datePicker setDate:firstSelectedDate],我就可以成功添加事件。我添加此行是为了在所选日期启动datepicker,它在视觉上成功运行,但它阻止添加事件。这背后可能的原因是什么?

最有可能的
err
不等于
noErr
。诺尔设定了什么

无论如何,在不知道saveEvent的实现的情况下,如果没有错误,它应该保持err不变,因此您需要检查:

if (!err) {
    UIAlertView *alert = [[UIAlertView alloc]
                          initWithTitle:@"Event Created"
                          message:@"Yay!?"
                          delegate:nil
                          cancelButtonTitle:@"Okay"
                          otherButtonTitles:nil];

[通过添加时间间隔开始日期:一小时后];很好。您是否在调试器中查看了各种变量的代码?您还需要发布事件存储的源。@RogerNolan我再次更新了代码。动态设置datepicker的开始日期是个问题,但我不确定为什么它会阻止添加事件。你有什么想法吗?需要看看saveEvent::这里是对saveEvent::啊,苹果代码:-)的参考,所以我的答案是正确的。检查您的noErr值。不需要,你应该检查一下!犯错误