gpt4 book ai didi

objective-c - NSSortComparator 对 NSMutableArray 没有影响

转载 作者:行者123 更新时间:2023-11-29 04:29:02 25 4
gpt4 key购买 nike

我正在运行以下代码,以最快结束的顺序对数组进行排序(最近的 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,反之亦然,但数组永远不会改变,即使返回的值会改变。

最佳答案

看起来它对我有用(从你的输出来看),但也许这更简洁,因此更不容易出错?

NSArray* unsorted;
NSSortDescriptor* descriptor = [NSSortDescriptor sortDescriptorWithKey: @"expiry_date" ascending: NO];
self.questions = [unsorted sortedArrayUsingDescriptors: @[ descriptor ] ];

关于objective-c - NSSortComparator 对 NSMutableArray 没有影响,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11955854/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com