我是NSArray
带有一些字典。它有一些键和值。我在桌面视图中显示。我把节标题标题放在该字典中的一个键的值之一,即像ddDate值。问题是相同的ddDate值需要在同一部分下。所以我需要根据它创建我的数组。
responseDict (
{
xx = 16;
yy = 17;
aa = 0;
bb = 6;
cc = 2016;
ddDate = "17-06-2016";
},
{
xx = 17;
yy = 17;
aa = 0;
bb = 6;
cc = 2016;
ddDate = "17-06-2016";
},
{
xx = 18;
yy = 17;
aa = 0;
bb = 6;
cc = 2016;
ddDate = "18-06-2016";
}
即日期是部分标题。那些在一个部分下具有相同ddDate值的人。任何人都可以指导我如何实现这一目标吗?
答案 0 :(得分:1)
您的目标是构建两个数据结构;一组ddDate
个值;这将是您的部分信息和数组字典,由ddDate
值键入;这将是你的行数据。
@property (strong, nonatomic) NSArray *sections;
@property (strong, nonatomic) NSDictionary *rows;
- (void)processJSONData:(NSArray *)inputArray {
NSMutableDictionary *extractedData = [NSMutableDictionary new];
for (NSDictionary *dict in inputArray) {
NSString *ddDate = dict["ddDate"];
NSMutableArray *rowArray = extractedData[ddDate];
if (rowArray == nil) {
rowArray = [NSMutableArray new];
extractedData[ddDate] = rowArray;
}
[rowArray addObject:dict];
}
self.sections = [extractedData allKeys];
self.rows = [NSDictionary dictionaryWithDictionary:extractedData];
}
您可能希望对self.sections
数组进行排序。
部分数量为self.sections.count
,部分中的行数为self.rows[self.sections[indexPath.section]].count
答案 1 :(得分:0)
您必须创建自定义数组,然后比较日期,如果日期相同,则将其添加到一个标题标题下,否则将其移至下一个标题标题。因此,我没有看到这里的捷径。