2

カレンダーからイベントを取得しようとしていますが、次のメソッドを使用して実行しています:

predicateForEventsWithStartDate:endDate:calendars:

しかし、次のような開始日を作成すると:

NSString *str =@"3/15/1980 9:15 PM";
    NSDateFormatter *formatter = [[NSDateFormatter alloc]init];
    [formatter setDateFormat:@"MM/dd/yyyy hh:mm a"];
    NSTimeZone *gmt = [NSTimeZone timeZoneWithAbbreviation:@"GMT"];
    [formatter setTimeZone:gmt];
    NSDate *date = [formatter dateFromString:str];

それから私はこれをします:

predicate = [eventStore predicateForEventsWithStartDate:date endDate:endDate calendars:  [eventStore calendarsForEntityType:EKEntityTypeEvent]];

NSArray *eventArray = [eventStore eventsMatchingPredicate:predicate];

代わりに、次を使用する場合、eventArrayはnilです。

[NSDate date]

今日から未来までのイベントを見つけてください。古い日付では機能しません。他の古い日付も試しましたが、配列は常にゼロです...

4

1 に答える 1

6

predicateForEventsWithStartDate関数を使用すると、返されるイベントは約4年の時間間隔(86400 * 365 * 4 + 86400 * 2)にあるように見えます。バグのようです。

于 2012-12-10T06:55:03.187 に答える