2

有没有办法对日历或提醒进行排序?我还没有找到 sortIndex 属性或类似的东西......提醒应用程序如何对那里的项目进行排序?

此致

4

3 回答 3

1

目前在 iOS 6 SDK 中,Reminders 应用程序使用的排序索引没有公共访问权限。您需要在应用程序中使用其他方法进行排序。

于 2013-01-17T08:30:50.537 回答
0

我用它来按优先级对 EKReminders 进行排序

NSSortDescriptor *sortDescriptor;
sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"priority" ascending:YES] ;
NSArray *sortDescriptors = [NSArray arrayWithObject:sortDescriptor];
NSArray *sortedArray = [unsortedArray sortedArrayUsingDescriptors:sortDescriptors];
于 2012-10-26T01:04:03.550 回答
0

这是 EKReminder 的一个类别,包含一个比较 2 个提醒(EKReminder 实例)的方法。然后我使用 NSArray 方法“sortUsingSelector”如下:

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

排序标准如下: 1) 所有已完成的提醒都列在未完成(未完成)的提醒下方

2)打开的提醒按报警日期排序(alarm.absoluteDate)

3)完成的提醒按completionDate排序

希望这可以帮助!

导入“EKReminder+Sort.h”

@implementation EKReminder(排序)

-(NSComparisonResult)compare:(EKReminder*)reminder { 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;

}

@结尾

于 2016-02-23T12:35:13.373 回答