【发布时间】:2015-04-16 21:16:10
【问题描述】:
我需要对对象的 NSArray 进行排序,但排序必须基于计算。
所以,我认为我必须使用自定义选择器,在其中进行数学运算,并返回值进行排序。
目标:根据到某个日期的 nr 天对 NSArray 进行排序。 startDate 在对象中,但我必须计算对象日期和另一个日期之间的天数。
我怎样才能做到这一点?
【问题讨论】:
我需要对对象的 NSArray 进行排序,但排序必须基于计算。
所以,我认为我必须使用自定义选择器,在其中进行数学运算,并返回值进行排序。
目标:根据到某个日期的 nr 天对 NSArray 进行排序。 startDate 在对象中,但我必须计算对象日期和另一个日期之间的天数。
我怎样才能做到这一点?
【问题讨论】:
完成:
NSArray *sorted = [[finalPTArray objectAtIndex:0] sortedArrayUsingComparator:
^NSComparisonResult(PT *obj1, PT *obj2)
{
long nrOfDays_Obj1 = 0;
if (obj1.detail.legalDate)
nrOfDays_Obj1 = [RLCalendricalCalculations daysBetweenDate:[NSDate date] andDate:obj1.detail.legalDate];
else
nrOfDays_Obj1 = [RLCalendricalCalculations daysBetweenDate:[NSDate date] andDate:obj1.detail.requestDueDate];
long nrOfDays_Obj2 = 0;
if (obj2.detail.legalDate)
nrOfDays_Obj2 = [RLCalendricalCalculations daysBetweenDate:[NSDate date] andDate:obj2.detail.legalDate];
else
nrOfDays_Obj2 = [RLCalendricalCalculations daysBetweenDate:[NSDate date] andDate:obj2.detail.requestDueDate];
if (nrOfDays_Obj1 < nrOfDays_Obj2)
return NSOrderedAscending;
else if (nrOfDays_Obj1 > nrOfDays_Obj2)
return NSOrderedDescending;
else
return NSOrderedSame;
}];
【讨论】: