iOS:未保存事件。需要帮助调试吗
以下是addEvent操作的完整代码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
- (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值。不需要,你应该检查一下!犯错误