10

predicateForEventsWithStartDate 関数を使用すると、返されるイベントが約 4 年の時間間隔にあるように見えます。これはバグですか?

4

2 に答える 2

8

はい、バグのようです。私も同じ経験をしました。predicateForEventsWithStartDate: は、開始日から 4 年以内のイベントのみを返します。時間間隔外にある他のすべてのイベントは返されません。

于 2012-12-12T06:54:07.730 に答える
0

間隔を選択してイベントを返すことができます (開始日と終了日を選択します)。

NSDateComponents *components = [CURRENT_CALENDAR components:DATE_COMPONENTS fromDate:[NSDate date]];
[components setDay:1];
[components setMonth:1];
[components setYear :[components year] - 1 ];
NSDate *startDate = [CURRENT_CALENDAR dateFromComponents:components];

NSDateComponents *EndComponents = [CURRENT_CALENDAR components:DATE_COMPONENTS fromDate:[NSDate date]];
[EndComponents setDay:1];
[EndComponents setMonth:1];
[EndComponents setYear:[EndComponents year] + 1];
NSDate *endDate = [CURRENT_CALENDAR dateFromComponents:EndComponents];

NSArray *calendarArray = nil;
if(systemVersion < 6.0)
{
     calendarArray = [yourEventStore calendars];
}
else
{
     calendarArray = [yourEventStore calendarsForEntityType:EKEntityTypeEvent];
}
NSPredicate *predicate = [yourEventStore predicateForEventsWithStartDate:startDate endDate:endDate calendars:calendarArray];
[arrayOfEvents addObjectsFromArray:[yourEventStore eventsMatchingPredicate:predicate]];
于 2012-12-10T09:19:20.693 に答える