gpt4 book ai didi

cocoa - 对 NSDate 的 NSArray 进行排序

转载 作者:行者123 更新时间:2023-12-03 16:03:50 27 4
gpt4 key购买 nike

我有一个 NSDate 对象的 NSArray,我想对它们进行排序,以便今天为 0,昨天为 1 等。

是升序还是降序,我是否使用函数、选择器或其他什么?

最佳答案

NSArray 有不同的排序方法,因为您可能需要不同的排序方式。 NSSortDescriptors 是一种通用方法,它为您提供了很多选项,包括在排序中使用哪些键、要在这些键上使用哪些选择器以及总体使用顺序等。或者您可以使用函数或比较器 block 来代替,如果您的情况需要这样做,或者这对您的具体情况是否更方便。

回答你的第一个问题,如果你希望今天是第一位,然后是昨天,那么,是的,这当然是降序。

要按降序对某些日期进行排序,您可以这样做:(假设一个充满 NSDates 的 NSArray 称为“dateArray”):

NSSortDescriptor *descriptor = [[NSSortDescriptor alloc] initWithKey:@"self" ascending:NO];
NSArray *descriptors = [NSArray arrayWithObject: descriptor];
[descriptor release];

NSArray *reverseOrder = [dateArray sortedArrayUsingDescriptors:descriptors];

或者,如果您正在为 iOS 4+ 或 Snow Leopard+ 进行构建,您可以执行以下操作:

NSArray *reverseOrderUsingComparator = [dateArray sortedArrayUsingComparator: 
^(id obj1, id obj2) {
return [obj2 compare:obj1]; // note reversed comparison here
}];

关于cocoa - 对 NSDate 的 NSArray 进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4354753/

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