您的位置:首页 > 其它

作业2

2016-01-08 14:19 260 查看
//
//  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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: