gpt4 book ai didi

iphone - iphone中对NSDate的NSString进行排序

转载 作者:行者123 更新时间:2023-12-03 21:06:13 24 4
gpt4 key购买 nike

我有一个数组,其中包含从 NSDate 转换而来的 NSString。我正在获取数组的初始索引并对它们进行排序。日期格式为:上午 8 点,下午 1 点。当我尝试执行 NSSortDescriptor 时,它总是给我 01PM 和 08AM。

//** Date string **//
NSDate *date1 = [dateFormat dateFromString:startSection];
[dateFormat setDateFormat:@"ah"];
startSection = [dateFormat stringFromDate:date1];
NSString *strSection = [NSString stringWithFormat:@"%@", startSection];

上面的字符串被添加到 NSArray 中。下面使用 NSArray 对字符串进行排序。最后,使用相同的数组来获取首字母并在sectionforsectionIndexTitle中显示它们的索引。所以我将 AM8 和 PM1 作为部分,而不是上午 8 点和下午 1 点。

NSSortDescriptor *nameDescriptor = [[[NSSortDescriptor alloc] initWithKey:@"start"
ascending:FALSE
selector:@selector(localizedCaseInsensitiveCompare:)] autorelease] ;


NSArray *descriptors = [NSArray arrayWithObject:nameDescriptor];
[[dict objectForKey:aKey] sortUsingDescriptors:descriptors];

最佳答案

使用sortUsingComparator:怎么样?但这将涉及在比较之前将字符串从 08AM 更改为 AM08 并将 01PM 更改为 PM01,因此假设它们将采用这种形式。

NSMutableArray * theArray = [dict objectForKey:aKey]; /* To be sorted */
[theArray sortUsingComparator:^NSComparisonResult(id obj1, id obj2) {
NSString * string1 = [NSString stringWithFormat:@"%@%@", [(NSString *)obj1 substringFromIndex:2], [(NSString *)obj1 substringToIndex:2];
NSString * string2 = [NSString stringWithFormat:@"%@%@", [(NSString *)obj2 substringFromIndex:2], [(NSString *)obj2 substringToIndex:2];

return [string1 localizedCaseInsensitiveCompare:string2];
}];

/* theArray is now sorted */

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

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