检查对象数组中键的值是否与iOS相同?

时间:2016-06-23 04:43:59

标签: ios objective-c iphone nsarray nsdictionary

我是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值的人。任何人都可以指导我如何实现这一目标吗?

2 个答案:

答案 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)

您必须创建自定义数组,然后比较日期,如果日期相同,则将其添加到一个标题标题下,否则将其移至下一个标题标题。因此,我没有看到这里的捷径。