在表格视图控制器中显示之前对 JSON 响应进行排序 - 目标 C

Posted

技术标签:

【中文标题】在表格视图控制器中显示之前对 JSON 响应进行排序 - 目标 C【英文标题】:Sorting JSON Response before show in table view controller - Objective C 【发布时间】:2015-11-24 07:17:29 【问题描述】:
Rewards =     (
                
            "Restaurant_ID" = 34;
            "Rewarded_Points" = 40;
            "Rewarded_Time" = "2015-11-23 09:16:00";
        ,

           
            "Restaurant_ID" = 40;
            "Rewarded_Points" = 60;
            "Rewarded_Time" = "2015-11-24 12:22:56";
          ,
            
            "Restaurant_ID" = 34;
            "Rewarded_Points" = 40;
            "Rewarded_Time" = "2015-11-24 12:22:56";
        
);

我正在检索上述对变量的响应并使用 for 循环显示在 TableViewController 中

for(int i=0;i<rewards.count;i++)
        NSDictionary * rewardsObj = [rewards objectAtIndex:i];
        restId = [rewardsObj objectForKey:@"Restaurant_ID"];
        rewardedPoints = [rewardsObj objectForKey:@"Rewarded_Points"];

[self.tableView reloadData];

当前输出一次又一次地显示相同的餐厅 ID。我想如果有匹配的 ID 那么这些点需要计算总和。

34 - Total Points : 40

40 - Total Points : 60

34 - Total Points : 40 //再次

但我想像下面这样排序

34 - Total Points : 80 // 40+40

40 - Total Points : 60

【问题讨论】:

你是否将restId和rewardedPoints存储到数组中? @Venkat 是的。如果有匹配的restId,则奖励积分输出所有的总和。 你可以创建一个字典,键是 ID,然后在解析 JSON 到字典时,你可以检查键是否存在然后做你的 SUM,否则再做一个新的对,这是最简单的我能想到的最快方法 【参考方案1】:

使用NSSortDescriptor 作为您的概念,

步骤-1

首先根据排序选择键,例如Rewarded_Points我们取,排序为ascending order。

NSSortDescriptor * Rewarded_Points =
[[NSSortDescriptor alloc] initWithKey:@"Rewarded_Points"
                           ascending:YES];
NSArray *descriptors = [NSArray arrayWithObjects:Rewarded_Points, nil];

 NSArray *sortedArrayOfDictionaries = [Rewards sortedArrayUsingDescriptors:descriptors]; // Rewards -> array of dictionary name

NSLog(@"final Value : %@", sortedArrayOfDictionaries);

更多Tutorial

【讨论】:

我提交了部分答案,对于您的第二个查询,我在这里有一个疑问,您的日期不同,可以添加,否则您尝试根据键省略重复值...跨度>

以上是关于在表格视图控制器中显示之前对 JSON 响应进行排序 - 目标 C的主要内容,如果未能解决你的问题,请参考以下文章

需要使用 Firebase 在表格视图控制器 Xcode 7 中安排显示模式

如何在uitableview的cellForRowAt函数中按标题日期对响应进行排序

在 Swift 的表格视图中按字母部分显示来自 JSON 的数据

在表格视图的标签中显示 Json 数据

如何在自定义表格视图中解析 JSON 响应 [关闭]

如何将元素从 json 显示到表格视图? [关闭]