OC 基本的便利排序方法
来源:互联网 发布:知柏地黄丸成分 编辑:程序博客网 时间:2024/05/16 04:37
NSEnumerator 数组便利
NSMutableArray *array = [NSMutableArray arrayWithObjects:@"aaa",@"bbb",@"ccc",@"ddd", nil];
//获取数组的正序枚举器
NSEnumerator *enu = [array objectEnumerator];
id value = nil;
//如果value不为nil 则继续 如果枚举的当前对象为nil 则表示数组结束 value值为nil 跳出while循环
while (value = [enu nextObject]) {
NSLog(@"%@", value);
}
//逆向枚举
NSEnumerator *reverseEnu = [array reverseObjectEnumerator];
while (value = [reverseEnu nextObject]) {
NSLog(@"%@", value);
}
//☀️ NSEnumerator 字典便利
NSDictionary *dictionary = @{@"key1":@"value1", @"key2":@"value2", @"key3":@"value3"};
NSEnumerator *enumerator = [dictionary objectEnumerator]; //获取枚举器对象
id value = nil; //存储字典中的value
while ((value = [enumerator nextObject])) {
NSLog(@"%@", value);
}
//forin 便利字典
NSMutableDictionary *dic = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"张",@"name",@"男",@"sex", nil];
//
// for (NSString *str in dic) {
// NSLog(@"%@ %@", str, dic[str]);
// }
// ☀️ NSSortDescriptor 不可变数组排序 便利
可变数组 sortUsingDescriptors
不可变数组排序方法, sortedArrayUsingDescriptors
NSArray *array1 = [NSArray arrayWithObjects:@"2",@"5",@"3",@"1", nil];
NSSortDescriptor *acending = [[NSSortDescriptor alloc]initWithKey:nil ascending:YES];
NSArray *array2 = [array1 sortedArrayUsingDescriptors:@[acending]];
for (NSNumber *a in array2) {
NSLog(@"%@", a);
}
☀️NSSortDescriptor 复杂对象 person 按要求排序 便利
Person *person1 = [[Person alloc]initWithName:@"B" age:20];
Person *person2 = [[Person alloc]initWithName:@"C" age:30];
Person *person3 = [[Person alloc]initWithName:@"A" age:40];
NSMutableArray *array = [NSMutableArray arrayWithObjects:person1, person2, person3, nil];
//按照名字升序(名字为英文)
NSSortDescriptor *name = [[NSSortDescriptor alloc]initWithKey:@"name" ascending:YES];// NO 为降序
NSArray *arr = [array sortedArrayUsingDescriptors:@[name]];
for (Person *p in arr) {
NSLog(@"%@ %ld", p.name, p.age);
}
//☀️ usingSelector 数组排序 可变数组用sortUsingSelector
//默认升序 //compare 可以比较的对象有 NSString NSNumber,不能对复杂对象进行比较。
NSArray *nameArray = @[@"ddd", @"ccc", @"aaa", @"bbb"];
NSArray *sorted1 = [nameArray sortedArrayUsingSelector:@selector(compare:)];
NSLog(@"%@", sorted1);
//☀️ 复杂对象排序 自己重写compare方法
Person *person1 = [Person personWithName:@"Angle" age:25];
Person *person2 = [Person personWithName:@"Bill" age:24];
Person *person3 = [Person personWithName:@"Cimi" age:23];
Person *person4 = [Person personWithName:@"Doom" age:22];
NSArray *personArray = @[person1, person2, person3, person4];
//名字升序
NSArray *sorted1 = [personArray sortedArrayUsingSelector:@selector(compareName:)];
for (Person *person in sorted1) {
[person print];
}
.m
- (NSComparisonResult)compareName:(Person *)anotherPerson
{
return [self.name compare:anotherPerson.name];
// return -[self.name compare:anotherPerson.name]; // 前面加 -号 降序
}
- OC 基本的便利排序方法
- OC便利方法
- OC数组排序的基本方法
- OC的动态方法调用带来的超大便利
- OC对象初始化-便利的初始化方法
- oc初始化方法,便利构造器
- OC中的方法、设置器与访问器、便利初始化函数及便利构造器的相关问题
- OC中实例变量初始化方法,setter方法以及便利构造器的不同
- OC的属性和便利构造器
- DAO的一些便利方法
- OC之便利构造器和方法(笔记)
- OC之继承,初始化方法,便利构造器
- OC总结-便利构造器与初始化方法
- OC基础:继承.初始化方法,便利构造器
- OC-继承-初始化方法-便利构造器(练习题-打僵尸)
- OC-初始化方法-便利构造器(练习-约分)
- OC学习-继承,便利构造器,初始化方法
- iOS开发之OC继承、初始化方法、便利构造器
- Android系统信息与安全机制
- 【刷题笔记/剑指Offer】41-50
- 快餐刷卡消费之触摸屏实现(含关键源码)
- eclipse 打开server部署路径
- 2016SDAU编程练习二1015
- OC 基本的便利排序方法
- 微软2016校园招聘4月在线笔试题目解析
- 222. Count Complete Tree Nodes
- 自定义栈
- 专题二总结报告
- 第九周上机实践项目-项目3-工资类
- 【APM】开发环境配置
- 回溯算法之批处理作业调度
- set,bitset 的一个应用实例——数据结构和比较算法