- (NSArray *)combinedStrings {
return [[self.numberOfUsers arrayByAddingObjectsFromArray:self.numberOfModerators] arrayByAddingObjectsFromArray:self.numberOfAdmins];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
NSDictionary *jsonForJam = [self.combinedStrings objectAtIndex:indexPath.row];
return cell;
}
我想按照降序对tableView中显示的结果进行排序,我该怎么办呢?
我已经尝试过使用它,但没有帮助:Best way to sort an NSArray of NSDictionary objects?
基于我提供的示例代码的解决方案将非常有用。
答案 0 :(得分:1)
您可以使用以下代码对字符串数组进行排序。
self.combinedStrings = [[[self.combinedStrings sortedArrayUsingSelector:@selector(localizedCaseInsensitiveCompare:)] reverseObjectEnumerator] allObjects];
或
NSSortDescriptor* sortDescriptor = [NSSortDescriptor sortDescriptorWithKey:nil ascending:NO selector:@selector(localizedCompare:)];
self.combinedStrings = [self.combinedStrings sortedArrayUsingDescriptors:[NSArray arrayWithObject:sortDescriptor]];
答案 1 :(得分:0)
A)您可以实现自己的自定义排序方法(最终仍然使用iOS排序方法),因为NSDictionary使问题变得复杂。
或
B)创建一个对象(其目的是保存字典中的所有信息)然后将自定义对象存储在数组中,然后按照这个或任何你想要的方式对其进行排序:
self.combinedStrings = [self.combinedStrings sortedArrayUsingComparator:^(id obj1, id obj2)
{
Client *client1 = (Client*)obj1;
Client *client2 = (Client*)obj2;
if([client1.firstName isEqualToString:client2.firstName])
return [client1.lastName compare:client2.lastName];
else
return [client1.firstName compare:client2.firstName];
}];
此处“客户”将是自定义对象,数据存储在属性中以便于访问。
希望这有帮助