次のコードを実行して、配列を最も早く終了する順序で並べ替えています(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
、その逆も同様ですが、戻り値が変更されても、配列は変更されません。