// // main.m // 作业1 // // Created by syrcfwzx on 16/1/8. // Copyright (c) 2016年 syrcfwzx. All rights reserved. // #import <Foundation/Foundation.h> #define NSLog(FORMAT, ...) printf("%s\n", [[NSString stringWithFormat:FORMAT, ##__VA_ARGS__] UTF8String]) int main(int argc, const char * argv[]) { @autoreleasepool { NSDictionary *dic1=@{@"name":@"小阳", @"class":@"IOS8", @"age":@"24" }; NSDictionary *dic2=@{@"name":@"小明", @"class":@"IOS6", @"age":@"67" }; NSDictionary *dic3=@{@"name":@"小丽", @"class":@"IOS8", @"age":@"12"}; NSDictionary *dic4=@{@"name":@"小杨", @"class":@"IOS8", @"age":@"9"}; //1.将以上四个字典存入数组中,输出数据以班级:XXX,姓名:XXX,年龄:XX格式。 NSMutableArray* array = [NSMutableArray array]; [array addObject:dic1]; [array addObject:dic2]; [array addObject:dic3]; [array addObject:dic4]; for(id obj in array) { NSDictionary* dic = obj; NSLog(@"姓名:%@ 班级:%@ 年龄:%@",dic[@"name"],dic[@"class"],dic[@"age"]); } NSLog(@"??????????????????????????????????????????"); //2.删除小明此条数据,列出剩余数据,输出格式同上。 for(int i=0;i<array.count;i++) { NSDictionary* ndic = array[i]; if([ndic[@"name"]isEqual:@"小明"]) { [array removeObject:ndic]; } } for(id obj in array) { NSDictionary* dic = obj; NSLog(@"姓名:%@ 班级:%@ 年龄:%@",dic[@"name"],dic[@"class"],dic[@"age"]); } NSLog(@"????????????????????????????????????????????"); //3.按照班级进行排序,如果班级相同则按照年龄排序输出数据,格式同上。描述器 NSSortDescriptor* sortDescriptor1 = [NSSortDescriptor sortDescriptorWithKey:@"class" ascending:YES]; NSSortDescriptor* sortDescriptor2 = [NSSortDescriptor sortDescriptorWithKey:@"age" ascending:YES]; NSArray* descs = [NSArray arrayWithObjects:sortDescriptor1,sortDescriptor2, nil]; NSArray* sortArray = [array sortedArrayUsingDescriptors:descs]; for(id obj in sortArray) { NSDictionary* mdic = obj; NSLog(@"姓名:%@ 班级:%@ 年龄:%@",mdic[@"name"],mdic[@"class"],mdic[@"age"]); } NSLog(@"????????????????????????????????????????????"); //NSSortDescriptor 指定用于对象数组排序的对象属性 //主要用于对象数组排序的对象属性 [array sortUsingComparator:^NSComparisonResult(id obj1, id obj2) { NSComparisonResult result = [obj1[@"class"]compare:obj2[@"class"]]; int a =[obj1[@"age"]intValue]; int b =[obj2[@"age"]intValue]; if(result==NSOrderedSame) { if(a==b) { return NSOrderedSame; } else if (a>b) { return NSOrderedDescending; } else { return NSOrderedAscending; } } else { return result; } }]; for(id obj in array) { NSDictionary* dic = obj; NSLog(@"姓名:%@ 班级:%@ 年龄:%@",dic[@"name"],dic[@"class"],dic[@"age"]); } } return 0; }
原文:http://www.cnblogs.com/hezhuangzhuang/p/5113101.html