我需要对NSArray对象进行排序,但排序必须基于计算。
所以,我认为我必须使用自定义选择器,我在那里进行数学运算,然后返回值进行排序。
目标:根据特定日期的nr天数对NSArray进行排序。 startDate位于Object中,但我必须计算对象日期和另一个日期之间的nr天数。
我怎样才能做到这一点?
答案 0 :(得分:0)
完成:
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;
}];