Objective-C - tableView,按降序排序JSON数组[重复]

Posted

技术标签:

【中文标题】Objective-C - tableView,按降序排序JSON数组[重复]【英文标题】:Objective-C - tableView, sort JSON array in descending order [duplicate] 【发布时间】:2014-04-22 17:08:34 【问题描述】:

这是 JSON,按降序显示,id_no

 "users":[
"id_no":"501",
 "type":"User",
   "country":"United Kingdom",
   "city":"London"
     
 "id_no":"500",
 "type":"Admin",
   "country":"United States",
   "city":"San Fransisco"
 ]

这是我的代码:

 - (void)viewDidLoad

[super viewDidLoad];
NSURL *jsonURL = [NSURL URLWithString:@"http://example.com/sohw.php"];
NSData *jsonData = [NSData dataWithContentsOfURL:jsonURL];
NSError *error = nil;
NSDictionary *dataDictionary = [NSJSONSerialization JSONObjectWithData:jsonData options:0 error:&error];
self.reports = [dataDictionary objectForKey:@"users"];

我要做的是在tableView上显示时按照JSON文件对users进行降序排序。

关于如何做到这一点的任何提示?

【问题讨论】:

旁注 - 不要像在 viewDidLoad 方法中那样在主线程上进行同步 Internet 调用。它会挂起用户界面并给用户带来糟糕的体验。 ***.com/questions/2393386/… ? @rmaddy 工作正常,没有任何问题,无论如何你能提出更好的解决方案吗? 执行异步/GDC。好吧,它现在正在阻止你的 UI。 对于蜂窝连接速度较慢或服务器过载的某些用户来说,它无法正常工作。始终在后台线程上从 Internet 加载数据。总是。 【参考方案1】:

如果您想要对数组进行排序,最好的办法是查看 NSArray 文档,搜索“sort”一词并在那里选择一种对数组进行排序的方法。 sortedArrayUsingComparator:是我个人的最爱。

【讨论】:

【参考方案2】:

您需要使用要排序的字段的键路径:

-(void)viewDidLoad

    [super viewDidLoad];
    NSURL *jsonURL = [NSURL URLWithString:@"http://example.com/sohw.php"];
    NSData *jsonData = [NSData dataWithContentsOfURL:jsonURL];
    NSError *error = nil;
    NSDictionary *dataDictionary = [NSJSONSerialization JSONObjectWithData:jsonData options:0 error:&error];

    NSSortDescriptor *sorter = [NSSortDescriptor sortDescriptorWithKey:@"id_no" ascending:NO];
    self.reports = [[dataDictionary objectForKey:@"users"] sortedArrayUsingDescriptors:@[sorter]];

【讨论】:

我在这里添加了这个答案,以防other duplicate question被删除..!

以上是关于Objective-C - tableView,按降序排序JSON数组[重复]的主要内容,如果未能解决你的问题,请参考以下文章

Objective-C 链接两个 Tableview

ios objective-c tableView searchBar

在现有的 tableview 中使用 Objective-C 实现 UISearchController

IOS/Objective-C:确定以编程方式创建的 tableview 中 imageView 的大小

Objective-C JSON 到 TableView 非常慢

Objective-C:tableview中的2个不同的自定义单元格[关闭]