首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何:将NSArray按日期排序,按降序排序,结果集顶部保留零日期

如何:将NSArray按日期排序,按降序排序,结果集顶部保留零日期
EN

Stack Overflow用户
提问于 2014-12-29 20:32:31
回答 3查看 375关注 0票数 0

我有以下方法,其中self.orderHeader.meetings是一个核心数据NSManagedObject,会议是一个会议列表。该方法按日期(MeetingDate)对会议进行排序:

代码语言:javascript
复制
- (NSArray *)sortMeetingList {
    return [[self.orderHeader.meetings allObjects] sortedArrayUsingDescriptors: [NSArray arrayWithObject: [NSSortDescriptor sortDescriptorWithKey:@"meetingDate" ascending:NO]]];
}

它返回我想要的东西,除非遇到没有meetingDate集的对象。这些被放在列表的底部,但是(考虑到降序),我希望将它们显示在列表的顶部:

例如:0,2014-12-29,2014-12-24,而不是2014-12-29,2014-12-24,0

有什么简单的方法吗??

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-12-29 20:53:49

试着做这样的事情:

代码语言:javascript
复制
NSArray *sortedMeetings = [unsortedMeetings sortedArrayUsingComparator:^NSComparisonResult(MeetingObjectClass *obj1, MeetingObjectClass *obj2) {
    if (!obj1.meetingDate)
        return NSOrderedAscending;
    if (!obj2.meetingDate)
        return NSOrderedDescending;
    return [obj2.meetingDate compare:obj1.meetingDate];
}];
票数 4
EN

Stack Overflow用户

发布于 2014-12-29 20:43:25

您可以用NSDate distantFuture替换零日期。

票数 0
EN

Stack Overflow用户

发布于 2014-12-29 20:45:35

使用不同的排序方法,以便显式指定如何处理每个比较,例如使用sortedArrayUsingFunction:context:

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27695595

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档