//
// 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
// 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