我正在运行以下代码以按最快结束的顺序对我的数组进行排序(最近的 expiry_date 到[NSDate date]
(现在)。
但是,每当我运行比较器时,它对数组完全没有影响,并且所有对象都保留其当前位置。请你能告诉我哪里出错了吗?
[self.questions sortUsingComparator:^NSComparisonResult(NSDictionary * question1, NSDictionary *question2) {
NSDate* dateq1 = [NSDate dateWithTimeIntervalSinceNow:[[question1 objectForKey:@"expiry_date"] floatValue]];
NSDate * dateq2 = [NSDate dateWithTimeIntervalSinceNow:[[question2 objectForKey:@"expiry_date"] floatValue]];
NSComparisonResult result = [dateq1 compare:dateq2];
NSLog(@"%@", result == NSOrderedAscending ? @"ASC" : result == NSOrderedDescending ? @"DESC" : @"SAME");
return result;
}];
NSLog() 返回以下内容:
DESC
DESC
ASC
我尝试将比较反转为dateq2
代替,dateq1
反之亦然,但数组永远不会改变,即使返回的值会改变。