2012-10-04 24 views
2

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

问候

回答

0

我用这个优先

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

目前在iOS 6的SDK有通过提醒应用程序使用的排序指标没有公众获得EKReminders排序。您需要在应用内使用其他方法进行排序。

0

以下是EKReminder的一个类别,其中包含一个比较2个提醒(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; 

}

@end