#import <Foundation/Foundation.h>
static NSString * const kName = @"name";
static NSString * const kAge = @"age";
static NSString * const kGender = @"gender";
inline static NSMutableDictionary *CreateDict(NSString *name, NSInteger age, BOOL isMale){
NSMutableDictionary *dict = [[NSMutableDictionary alloc] initWithDictionary:@{kName:name,kAge :@(age),kGender :@(isMale)}];
return dict;
}
int main(int argc, const char * argv[]) {
@autoreleasepool {
NSArray *array = @[CreateDict(@"王思聪", 27, YES),
CreateDict(@"范冰冰", 35, NO),
CreateDict(@"马云", 51, YES),
CreateDict(@"霍建华", 36, YES),
CreateDict(@"赵丽颖", 28, NO)];
//第1题 请按照年龄的升序排序输出,输出样式为:王思聪,男性,今年27岁
// NSArray *arr=[array sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2) {
// if(obj1[kAge]==obj2[kAge]){
// return NSOrderedSame;
// }else if(obj1[kAge]>obj2[kAge]){
// return NSOrderedDescending;
// }else{
// return NSOrderedAscending;
// }
// }
// ];
//排序二 描述器
NSSortDescriptor *kAgeWithsort=[[NSSortDescriptor alloc]initWithKey:kAge ascending:YES];
NSArray *weer=[NSArray arrayWithObjects:kAgeWithsort, nil];
NSArray *weer1=[array sortedArrayUsingDescriptors:weer];
for(NSDictionary *str in weer1){
NSInteger num=[str[kGender] integerValue];
if (num==YES) {
NSLog(@" %@男性,今年%@岁",str[kName],str[kAge]);
}else{
NSLog(@"%@, 女性,今年%@岁",str[kName],str[kAge]);
}
}
// for (id str in arr) {
// NSDictionary* idc=str;
// NSInteger num=[idc[kGender] integerValue];
// if (num==YES) {
// NSLog(@" %@男性,今年%@岁",idc[kName],idc[kAge]);
// }else{
// NSLog(@"%@, 女性,今年%@岁",idc[kName],idc[kAge]);
// }
// }
// 第2题 请输入女性信息,输出样式为:范冰冰大美女,今年35岁
for (id str in array ) {
NSDictionary* idc=str;
NSInteger num=[idc[kGender] integerValue];
if (num==NO) {
NSLog(@"%@,大美女 女性,今年%@岁",idc[kName],idc[kAge]);
}
}
//第3题 请将“马云”的年龄改为41岁
for (int i=0; i<array.count; i++) {
NSMutableDictionary *a=array[i] ;
if([a[kName] isEqualTo:@"马云"]){
[a setValue:@41 forKey:kAge];
}
}
for (id str in array) {
NSDictionary* idc=str;
NSInteger num=[idc[kGender] integerValue];
if (num==YES) {
NSLog(@" %@男性,今年%@岁",idc[kName],idc[kAge]);
}else{
NSLog(@"%@, 女性,今年%@岁",idc[kName],idc[kAge]);
}
}
}
return 0;
}