Objective-C----快速枚举、数组排序

直接上代码:

        /*
         *  快速枚举
         *
         */
        NSLog( @"++++++++++++++++++" ) ;

        NSArray *testArray = @[@1, @2, @3, @4, @5] ;
        //通过快速枚举来遍历数组元素
        for (NSArray *object in testArray) {
            NSLog( @"%@", object ) ;
        }
        //不确定类型时用 id
        for ( id object in testArray ) {
            NSLog( @"%@", object ) ;
        }

        //快速遍历集合
        for ( id object in set1 ) {
            NSLog( @"%@", object ) ;
        }

        //快速遍历字典(得到的是字典的键)
        //直接遍历字典得到的是字典的每一个键,可以通过遍历得到的键去获取对应的值
        for ( id object in dic1 ) {
            NSLog( @"%@", object ) ;
        }
        //dic1[key]可得到对应value,这是一个语法糖,相当于[dic1 objectForKey:key]
        for ( NSString *key in dic1) {
            NSLog( @"dictionary[%@]:%@", key, dic1[key] ) ;
        }

        /*
         *  数组排序
         *
         */

        //注意初始化数组时,所有数组元素对象的类型相同,如下会出错:@[@1, @2, @"5", @3, @4]
        NSArray *array1 = @[@1, @2, @5, @3, @4] ;
        //使用数组排序方法对数组进行升序排序
        NSArray *resultArray = [array1 sortedArrayUsingSelector:@selector(compare:)] ;
        NSLog( @"%@", resultArray ) ;

        Student *stu1 = [Student studentWithName:@"wang" score:@85] ;
        Student *stu2 = [Student studentWithName:@"zhen" score:@95] ;
        Student *stu3 = [Student studentWithName:@"gang" score:@65] ;
        NSMutableArray *stus = [NSMutableArray array] ;
        [stus addObject:stu1] ;
        [stus addObject:stu2] ;
        [stus addObject:stu3] ;

        [stus sortedArrayUsingSelector:@selector(scoreAscending:)] ;
        NSLog( @"%@", stus ) ;
        [stus sortedArrayUsingSelector:@selector(scoreDescending:)] ;
        NSLog( @"%@", stus ) ;
        [stus sortedArrayUsingSelector:@selector(nameAscending:)] ;
        NSLog( @"%@", stus ) ;
        [stus sortedArrayUsingSelector:@selector(nameDescending:)] ;
        NSLog( @"%@", stus ) ;
时间: 2024-10-09 01:24:31

Objective-C----快速枚举、数组排序的相关文章

Objective-C中快速枚举和数组排序

快速枚举 for (<#type *object#> in <#collection#>){ } object是遍历得到的元素对象,collection是集合类型的对象:数组,字典,集合. 数组枚举得到数组中的元素对象. 字典枚举得到字典中的key值. 集合枚举得到集合中的元素对象. 1 // 数组 2 NSArray *arr = [NSArray arrayWithObjects:@"iPhone", @"demaxiya", @&quo

ObjectC----字典类和集合类以及快速枚举和OC中的数组排序

// Create By 郭仔  2015年04月01日20:06:36 // 不可变字典 // 字典是适用于存放键值对的一种集合,里面的元素必须是对象类型 // 字典是无序的 // 字典赋值 NSDictionary *dic = [NSDictionary dictionaryWithObjectsAndKeys:@"guozai",@"name",@"nan",@"sex",@"14",@"

NSDictionary使用快速枚举方法

上一章我们通过一个枚举器访问并返回字典里的键值, 现在我们通过快速枚举来查找键对应的值. 涉及到的方法: objectForKey: 这个方法的意思是返回一个值给对应的键, 下面使用了两次这个方法, 第一次没在循环里面使用, 输入了值@"1", 对应的值就是@"One". PS: 在这里, 我们找到了键, 就代表找到了值. 下面是例子: #import <Foundation/Foundation.h> int main(int argc, const

6、iOS快速枚举

今天在写程序的时候想在当前视图跳转的时候释放掉当前视图上面add的一些子视图.因为add的子视图有些是在别的类里面add进来的,当前页面不知道自己当前有哪几个类型的子视图.这样,我就想到了用循环遍历来查看当前视图有没有符合条件的子视图,如果有的话就释放掉. 我是这样写的: for(UIView * subView in self.view.subviews) { if([subView isKindOfClass:[XYZSeniorQueryView class]]) { [subView r

Objective C 快速入门学习五

<一>继承和多态 @class Complex 声明类(同C++) 子类函数成员 super 访问父类 同C++类似 1.通过继承 在子类中添加新方法 2.通过继承 在子类中添加新成员 3.通过继承 实现多态(实现比较简单,通过Id通用类型作为父类) 4.重载 5.抽象类abstract作用:创建子类更容易:提供了处理所有派生子类的公共接口:抽象方法制定了标准协议,规范子类必须实现. 6.通用类型id,编译时不会做类型检查,在运行时才会动态绑定具体类型,指出错误. 静态类型在编译阶段就会指出错

Objective C 快速入门学习二

Objective-C 类.对象.方法 1.编写一个复数类: #import <Foundation/Foundation.h>@interface Complex: NSObject //类声明,Complex继承NSObject { int iReal;//成员变量声明,在括号内 int iImag; } //成员函数声明,在括号外 -(void) print; -(void) setReal : (int) n; -(void)setImag : (int) d; @end //@int

Objective C 快速入门学习三

1.数据类型 和C语言基本一样. 有一个特别数据类型id,可以储存任何类型的对象,它是实现多态和动态绑定的基础. Objective-C 2.程序结构 Objective-C和C的程序结构一模一样,具体用法相同. 顺序.循环.选择 3.基本上Objective-C兼容了C语言所有特点,包括数组.结构.字符串.联合,它们不是对象,面向过程式.建议直接使用相关框架下的相关类,面对对象编程. Objective C 快速入门学习三

NSArray的快速枚举使用方法

快速枚举法创建数组: 快速枚举法的原理和枚举差不多, 只是写法更加的简单明了. 快速枚举法一样需要先创建一个不可变数组, 然后通过快速枚举, 将数组里面的元素逐个打印出来. 下面让我们来看看详细的例子: #import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { NSArray *array = [[NSArray alloc]initWithObjects:@&q

ios之快速枚举

for(UIView * subView in self.view.subviews) { if([subView isKindOfClass:[XYZSeniorQueryView class]]) { [subView removeFromSuperview]; subView = nil;//错误 } } 错误提示信息: Fast enumeration variables can't be modified in ARC by default;declare the variable _

最高科技——快速枚举约数

求数\(n\)的最小的约数\(r\),使\(r\)满足性质\(P\),这些性质满足这样的一个条件:若有\(d|r\)满足性质\(P\),则有\(r\)也满足\(P\). 首先\(O(\sqrt{n})\)直接暴力枚举因数显然可行,然而我们有更快的方法. 设\(n=p_1^{k_1}p_2^{k_2}\ldots p_m^{k_m}\) 我们先从大到小枚举数\(w_1\),使其成为最小的\(w_1\)使得\(t=p_1^{w_1}p_2^{k_2}\ldots p_m^{k_m}\)满足\(P\)