Сортировка ekcalendar или ekreminder

есть ли способ отсортировать календарь или напоминания? Я не нашел свойства sortIndex или что-то в этом роде... Как приложение напоминания сортирует там элементы?

С наилучшими пожеланиями


person Community    schedule 04.10.2012    source источник


Ответы (3)


В настоящее время в iOS 6 SDK нет открытого доступа к индексу сортировки, используемому приложением «Напоминания». Вам нужно будет отсортировать, используя какой-либо другой метод в вашем приложении.

person Jim Conroy    schedule 17.01.2013

Я использовал это для сортировки EKReminders по приоритету

NSSortDescriptor *sortDescriptor;
sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"priority" ascending:YES] ;
NSArray *sortDescriptors = [NSArray arrayWithObject:sortDescriptor];
NSArray *sortedArray = [unsortedArray sortedArrayUsingDescriptors:sortDescriptors];
person mhunter007    schedule 26.10.2012

Вот категория EKReminder, содержащая метод сравнения двух напоминаний (экземпляров EKReminder). Затем я использую метод NSArray sortUsingSelector следующим образом:

[myReminders sortUsingSelector:@selector(compare:)];

Критерии сортировки следующие: 1) Все завершенные напоминания перечислены ниже открытых (незавершенных) напоминаний.

2) открытые напоминания сортируются по дате будильника (alarm.absoluteDate)

3) выполненные напоминания сортируются по дате завершения

Надеюсь это поможет!

импортировать "EKReminder+Sort.h"

@implementation EKReminder (Сортировка)

-(NSComparisonResult)сравнить:(EKReminder*)напоминание {результат NSComparisonResult = NSOrderedSame;

if(self.completed) {
    if(reminder.completed) {
        result = [reminder.completionDate compare:self.completionDate];
    } else {
        result = NSOrderedDescending;
    }
} else {
    if(reminder.completed) {
        //do nothing
        result = NSOrderedSame;
    } else {
        NSDate *date1 = [self.alarms.firstObject absoluteDate];
        NSDate *date2 = [reminder.alarms.firstObject absoluteDate];

        if(date1) {
            if(date2) {
                result = [date1 compare:date2];
            } else {
                result = NSOrderedDescending;
            }
        } else {
            //do nothing
            result = NSOrderedSame;
        }
    }
}

return result;

}

@конец

person Kabeer    schedule 23.02.2016