繁体   English   中英

如何在iOS中合并具有相同值的NSMutableArray中的2个NSDictionaries?

[英]How to merge 2 NSDictionaries in NSMutableArray having same value in iOS?

我有一个带有NSDictionaries的NSMutableArray,格式如下

(
            {
        "login_id" = 95;
        consDays = "Mon,Tue";
        consEndTime = 12600000;
        consStartTime = 9000000;
        duration = 10;
        id = 58;
        isActive = 1;
    },
            {
        "login_id" = 95;
        consDays = "Wed,Thur";
        consEndTime = 41400000;
        consStartTime = 23400000;
        duration = 10;
        id = 59;
        isActive = 1;
    },
            {
        "login_id" = 98;
        consDays = "Mon,Tue,Wed,Thur,Fri,Sat,Sun";
        consEndTime = 45000000;
        consStartTime = 9000000;
        duration = 30;
        id = 60;
        isActive = 1;
    },

我可以在这里看到前两个对象与“ login_id” 95相同,我需要合并内容并进行类似的操作

      {
        "login_id" = 95;
        consDays = "Mon,Tue-Wed,Thur";
        consEndTime = 12600000-41400000;
        consStartTime = 9000000-23400000;
        duration = 10;
        id = 58;
        isActive = 1;
    },

我已经尝试过for循环,但不清楚

for(int i=0;i<[[arr valueForKey:@"data"] count];i++){

    NSString *bloginId=[NSString stringWithFormat:@"%@",[[[arr valueForKey:@"data"] valueForKey:@"branchLogin_id"] objectAtIndex:i]];

    for(int j=0;j<[[arr valueForKey:@"data"] count];j++){

        NSString *firstId=[NSString stringWithFormat:@"%@",[[[arr valueForKey:@"data"] valueForKey:@"branchLogin_id"] objectAtIndex:i]];

        NSString *secondId=[NSString stringWithFormat:@"%@",[[[arr valueForKey:@"data"] valueForKey:@"branchLogin_id"] objectAtIndex:j]];
        NSLog(@"%@-%@",firstId,secondId);

        if([firstId isEqualToString:secondId]){
            NSLog(@"%@",[consultationDetailsArray valueForKey:@"branchLogin_id"]);
            if([[consultationDetailsArray valueForKey:@"branchLogin_id"]  containsObject:secondId]){

                NSString *str=[NSString stringWithFormat:@"%@,%@",[[consultationDetailsArray valueForKey:@"consDays"] objectAtIndex:j],[[[arr valueForKey:@"data"] valueForKey:@"consDays"] objectAtIndex:j]];
                NSLog(@"consDays %@",str);

            }else{

                [consultationDetailsArray addObject:[[arr valueForKey:@"data"] objectAtIndex:j]];
            }
        }
    }



}

谁能帮我 ?

具有讽刺意味的是,我现在正在做同样的事情。 看起来最简单的方法是使用NSMutableDictionary。

    // Assume two starting dictionaries.
    dictionaryOne;
    dictionaryTwo;
    //
    // Create a mutable copy of the first
    NSMutableDictionary *merged = dictionaryOne.mutableCopy;
    [merged addEntriesFromDictionary: dictionaryTwo];
    //
    // merged now contains all keys of both dictionaries
    // keys that are in both dictionaries will have values
    // from dictionaryTwo.

希望这可以帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM