ios - 根据截止日期对 EKReminder 进行排序

标签 ios nssortdescriptor nsdatecomponents eventkit ekeventkit

我有一个 EKReminder 对象数组,我想按截止日期对它们进行排序。

一开始这看起来很简单,做这样的事情:

NSSortDescriptor *dateDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"dueDate" ascending:YES];

[remindersArray sortUsingDescriptors:@[dateDescriptor]];

但是,EKReminder 的截止日期是一个 NSDateComponents 对象,而不是 NSDate

有什么想法吗?

最佳答案

因此,经过一些研究,我设法相对容易地解决了这个问题:

[allReminders sortUsingComparator:^NSComparisonResult(id obj1,id obj2){
        EKReminder *reminder1 = obj1;
        EKReminder *reminder2 = obj2;

        NSDate *date1 = [reminder1.dueDateComponents date];
        NSDate *date2 = [reminder2.dueDateComponents date];
        return [date1 compare:date2];
     }];

希望这对某人有帮助!

关于ios - 根据截止日期对 EKReminder 进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41354096/

相关文章:

objective-c - 通过对两个参数进行加权对 NSArray 进行排序

iphone - 如何根据字典的几个属性对字典数组进行排序

objective-c - NSDateComponents关闭一个小时

ios - NSDateComponents 返回错误的工作日

ios - 恰好 '152x152' 像素的 iPad,在 Xcode 10 中为 iOS 版本 >= 10.0 的 .png 格式

iOS NSArray 排序

ios - 如何使用 swift 在多单元格 uitableview 中实现导航

ios - objective-C/iOS : Get date for specific day in week (sunday)

ios - 在 segue 回到原始 map (Mapkit Swift)后重置注释引脚

iOS UItableView 按索引路径从数组中删除对象