Objective-C基础之数组

前言

简单的总结一下在学习Objective-C过程中对数组的一些理解

正文

NSArray

NSArray有两种限制

  1. 它只能存储Objective-C的对象,而不能存储原始的C语言数据类型
  2. 它不能存储nil

数组创建

数组字面量

NSArray* array = @[@"first",@"second"];

在[]外面的“@”表示这个数组类型是属于Objective-C类型的。里面的”@”表示字符串属于Objective-C类型,因为NSArray不能存储原始的C语言数据类型;

类方法创建

NSArray* array = [NSArray arrayWithObjects: @"first",@"second",nil];

上面以逗号隔开的对象列表初始化数组,在列表结尾nil表示的是列表结束的意思(这就是不能再数组中存储nil的一个原因)

数组查询

索引查询

-(void)searchArray:(NSArray*) arry {
    //索引遍历
    NSLog(@"下面是索引比那里");
    NSMutableString *content = [NSMutableString stringWithCapacity:10];
    for(int index = 0; index < [arry count]; index++) {
        [content appendFormat:@"这是第%d元素:%@ ",index,arry[index]];
    }
    NSLog(@"%@",content);
}

枚举查询

-(void)searchArray:(NSArray*) arry {
    //枚举遍历
    NSLog(@"下面是枚举遍历");
    NSEnumerator *interator = [arry objectEnumerator];
    id temp;
    while((temp = [interator nextObject])) {
        NSLog(@"%@",temp);
    }
}

快速枚举

在Objective-C 2.0 提供了快速枚举

    for(NSString* string in array) {
        //array表示数组
        //string表示数组里面的内容
    }

代码块查询

apple添加了一个能在NSArray中通过代码块枚举对象的方法

[array enumerateObjectsUsingBlock:(void(^)(id obj,NSUInteger idx,BOOL* stop) 
    //obj表示的就是array遍历出来的类型
}]

NSMutableArray

它是可变的,而NSArray创建好以后就不能改变,这个在使用过程中多多体会

结束语

大体功能是了解了,文档里面提供的api还不是很熟悉,用到时多多看文档,come on~
发布了88 篇原创文章 · 获赞 29 · 访问量 29万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章