gpt4 book ai didi

ios - tableview中的列数据排序

转载 作者:行者123 更新时间:2023-11-29 03:30:30 26 4
gpt4 key购买 nike

我使用的表格 View 看起来像 Excel 工作表类型可以表示多个列。在列标题上添加平移手势以增加列的宽度,就像在 Excel 工作表中一样。我在对列数据进行排序时遇到问题。列数据始终按字母/字符串格式排序。虽然我有一些数字类型列以及日期类型。因此所有列都按字符串排序。您能否建议一些选项来实现这一点?我将数组中的所有数据作为 Web 服务的字典。

让我分享一些排序代码。

-(void)sortTableDataUsingSortKey:(NSString *)sortKey withAscending:(BOOL)isAscending {

NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:sortKey ascending:isAscending selector:@selector(compare:)];

NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil];
NSArray *arrTemp = [[NSArray alloc] initWithArray:[data_array sortedArrayUsingDescriptors:sortDescriptors]];
[data_array count]?[data_array removeAllObjects]:NSLog(@"Datsource Table Not null");
[data_array addObjectsFromArray:arrTemp];
arrTemp = nil;

[_table_view reloadData];
}

最佳答案

我解决了这个问题。我刚刚根据字典的数据类型添加了条件排序描述符方法。并在 Data_array 字典中添加数据。以正确的数据类型添加数据。就像如果数据是数字,那么将它们作为数字/ float 或 NSDate 添加到字典中。

现在我根据排序列检查字典中的数据类型。并更改排序选择器(比较非字符串数据和字符串数据使用 caseInsensitiveCompare:) 其余工作正常。

最终有效的方法现在是..

-(void)sortTableDataUsingSortKey:(NSString *)sortKey withAscending:(BOOL)isAscending {
NSSortDescriptor *sortDescriptor = nil;

if ([data_array count] && [[[data_array objectAtIndex:0] valueForKey:sortKey] isKindOfClass:[NSString class]]) {
sortDescriptor = [[NSSortDescriptor alloc] initWithKey:sortKey ascending:isAscending selector:@selector(caseInsensitiveCompare:)];
}
else {
sortDescriptor = [[NSSortDescriptor alloc] initWithKey:sortKey ascending:isAscending selector:@selector(compare:)];
}

NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil];
NSArray *arrTemp = [[NSArray alloc] initWithArray:[data_array sortedArrayUsingDescriptors:sortDescriptors]];
[data_array count]?[data_array removeAllObjects]:NSLog(@"Datsource Table Not null");
[data_array addObjectsFromArray:arrTemp];
arrTemp = nil;

[_table_view reloadData];
}

关于ios - tableview中的列数据排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19857488/

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