1

私は現在、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 回目のテストでは何も起こりませんでした。カレンダーをスクロールしたり、カレンダーを終了して再入力したりすると、これらの日付が削除されますか?

4

3 に答える 3

2

適切な回答ではないかもしれませんが、SDK / Xcode / OS の更新後、このバグはなくなりました。

問題は、イベントが追加されなかったことではなく、UITableView がスクロールされると消えてしまうことでした。イベントが追加され、カレンダーを開いた直後に画面に表示されると、それらは表示されますが、日付/イベントが表示されていない場合、追加されないように見えます。日付を追加してもエラーは発生しなかったため、問題のデバッグは不可能でした。

iOS 5.1 での継続的なテストでは、Xcode 4.3 と最新の SDK をインストールするための前提条件として、Lion への OS アップデートが必要でした。更新が行われると、イベントはスムーズに追加され、リストに残りました。理由はわかりませんが、ありがたいことに問題は解決しました。

于 2012-06-07T16:39:57.033 に答える
0

シミュレーターでも同じことが起きました。プロジェクトをクリーンアップして再度ビルドすると、すべてが機能するように見えました。(そのせいで1日損した!!)

多分それはあなたのために働くでしょう...

于 2012-02-16T17:22:01.713 に答える