第1个回答 2016-07-03
解决方法 1:
我认为你需要一个特别的比较器为此。使用initWithKey: 升序: 比较器:初始化您排序描述符并作为一种比较器传递这:
^(id obj1, id obj2) {
NSDateComponents *components1 = [[NSCalendar currentCalendar] components:NSHourCalendarUnit|NSDayCalendarUnit fromDate:obj1];
NSInteger day1 = [components1 day];
NSInteger hour1 = [components1 hour];
NSDateComponents *components2 = [[NSCalendar currentCalendar] components:NSHourCalendarUnit|NSDayCalendarUnit fromDate:obj2];
NSInteger day2 = [components2 day];
NSInteger hour2 = [components2 hour];
NSComparisonResult res;
if (day1>day2) {
res = NSOrderedAscending;
} else if (day1<day2) {
res = NSOrderedDescending;
} else {
if (hour1>hour2) {
res = NSOrderedDescending;
} else {
res = NSOrderedAscending;
}
}
return res;
}
这应该给你如何可以实现这样的想法,您将需要添加的分钟和第二个组件,并还处理小时、 分钟和秒都是平等的情况。本回答被网友采纳