【问题标题】:Sorting ekcalendar or ekreminder排序 ekcalendar 或 ekreminder
【发布时间】:2012-10-04 13:47:39
【问题描述】:

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

最好的问候

【问题讨论】:

    标签: calendar ios6 eventkit reminders ekeventkit


    【解决方案1】:

    目前在 iOS 6 SDK 中,无法公开访问提醒应用程序使用的排序索引。您需要在应用程序中使用其他方法进行排序。

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        【解决方案3】:

        这里是 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;
        

        }

        @结束

        【讨论】:

          猜你喜欢
          • 2017-05-12
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-05-16
          • 1970-01-01
          • 2012-12-06
          相关资源
          最近更新 更多