2016-12-28 41 views
0

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

这似乎很容易在第一,做这样的事情:

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

[remindersArray sortUsingDescriptors:@[dateDescriptor]]; 

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

任何想法?

+0

使用'dateFromComponents:'获取日期和排序日期? – matt

+0

谢谢,但我该如何排序呢? –

+0

日期只是几秒钟,所以它自然可以排序。 – matt

回答

0

于是,经过一番研究,我设法解决这个问题相对容易:

[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]; 
    }]; 

希望这可以帮助别人!