`
ydbc
  • 浏览: 711441 次
  • 性别: Icon_minigender_1
  • 来自: 大连
文章分类
社区版块
存档分类
最新评论

merge 字典数组 array dict

 
阅读更多
//
// ViewController.m
// h
//
// Created by jason on 13-3-1.
// Copyright (c) 2013年 hufeng. All rights reserved.
//


#import "ViewController.h"


@interface ViewController ()


@end


@implementation ViewController
typedef struct
{
BOOL isHasKey;
int position ;
}ReturnDate;


- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.

NSDictionary *dict = @{
@"pushInfo": @[
@{
@"content": @"处理批示",
@"infoId": @"info001",
@"modeType": @"db",
@"systemType": @"oa"
},
@{
@"content": @"处理批示",
@"infoId": @"info002",
@"modeType": @"st",
@"systemType": @"oa"
},
@{
@"content": @"处理批示",
@"infoId": @"info003",
@"modeType": @"ls",
@"systemType": @"oa"
},
@{
@"content": @"处理批示",
@"infoId": @"info004",
@"modeType": @"ed",
@"systemType": @"oa"
},
@{
@"content": @"处理批示",
@"infoId": @"info002",
@"modeType": @"sd",
@"systemType": @"oa"
},
@{
@"content": @"处理批示",
@"infoId": @"info005",
@"modeType": @"sd",
@"systemType": @"oa"
},
@{
@"content": @"处理批示",
@"infoId": @"info005",
@"modeType": @"sddd",
@"systemType": @"oa"
},
@{
@"content": @"处理批示",
@"infoId": @"info006",
@"modeType": @"sddd",
@"systemType": @"oa"
},
]
};
// NSLog(@"the dict = %@" , dict);

NSArray *array = [dict objectForKey:@"pushInfo"];
[self returnKey:array key:@"info002"];


NSMutableArray *uniquarray = [NSMutableArray array];
NSMutableArray *uniquarraytmp = [[array mutableCopy]autorelease];
for (int i = [uniquarraytmp count]; i>0; i--)
{
NSString *key = [[uniquarraytmp objectAtIndex:i-1] objectForKey:@"infoId" ];
ReturnDate dt = [self returnKey:uniquarray key:key];
if(dt.isHasKey)
{
NSMutableDictionary *dictA =
[[[uniquarraytmp objectAtIndex:i-1]mutableCopy]autorelease];
NSString *a =[dictA objectForKey:@"modeType"];
NSMutableDictionary *dictB =
[[[uniquarray objectAtIndex:dt.position]mutableCopy]autorelease];
NSString *b =[dictB objectForKey:@"modeType"];
[dictA setObject:[NSString stringWithFormat:@"%@^%@",a,b] forKey:@"modeType"];
[uniquarray replaceObjectAtIndex:dt.position withObject:dictA];
}
else
{
[uniquarray addObject: [uniquarraytmp objectAtIndex:i-1]];
[uniquarraytmp removeObjectAtIndex:i-1];
}
}
NSLog(@"the after \n%@",uniquarray);
}


-(ReturnDate)returnKey:(NSArray *)array key:(id)key
{
int i =0;
ReturnDate date;
date.position =0;
date.isHasKey =NO;


for (NSDictionary *dict in array)
{
if ([[dict objectForKey:@"infoId"] isEqual:key]
)
{
date.isHasKey = YES;
date.position =i;
break;
}
else
{
i++;
}
}
return date;
}


- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}


@end
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics