2012-10-04 50 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