私は現在、XML を介して特別なイベントのリストをダウンロードし、ユーザーがカレンダーに追加できるリストにそれらを提供するアプリをテストしています。[イベントをカレンダーに追加] ボタンをクリックすると、関数が正しく起動し、適切な日付でイベントが設定され、saveEvent
関数は を返しますがnoErr
、イベントはカレンダーに表示されません。2 台の異なる iPhone で確認しましたが、どちらも同じ動作でした。何もうまくいかないように見えるので、何がうまくいかないのかわかりません。
私のイベントコードは次のとおりです。
- (IBAction) addEvent:(id)sender
{
EKEventStore *eventStore = [[[EKEventStore alloc] init] autorelease];
EKEvent *newEvent = [EKEvent eventWithEventStore:eventStore];
newEvent.title = _event.name;
CFTimeZoneRef zone = CFTimeZoneCopySystem();
CFAbsoluteTime absTime = CFGregorianDateGetAbsoluteTime([_event getStartDate], zone);
NSDate *start = [(NSDate *)CFDateCreate(nil, absTime) autorelease];
absTime = CFGregorianDateGetAbsoluteTime([_event getEndDate], zone);
NSDate *end = [(NSDate *)CFDateCreate(nil, absTime) autorelease];
CFRelease(zone);
newEvent.startDate = start;
newEvent.endDate = end;
newEvent.allDay = [_event getAllDay];
newEvent.notes = _event.description;
[newEvent setCalendar:[eventStore defaultCalendarForNewEvents]];
NSError *err;
[eventStore saveEvent:newEvent span:EKSpanThisEvent error:&err];
if (err == noErr) {
UIAlertView *alert = [[UIAlertView alloc]
initWithTitle:@"Event Added"
message:[NSString stringWithFormat:@"%@ successfully added to calendar!", _event.name]
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alert show];
[alert release];
}
}
クリーンアップと再構築の後、イベントの 1 つをカレンダーに表示することができましたが、上下にスクロールすると消えてしまったようです。私が追加した別の日付でも同じことが起こり、3 回目のテストでは何も起こりませんでした。カレンダーをスクロールしたり、カレンダーを終了して再入力したりすると、これらの日付が削除されますか?