Foundation框架(二) — NSArray、NSMutableArray

Objective-C的数组和许多其他的编程语言都不太一样,Objective-C的数组比C++,Java的数组强大在于,NSArray保存的对象可以是不同类型的对象。但是缺点是只能保存对象,int ,char,double等基本数据类型不能直接保存,需要通过转换成OC对象才能加入数组。

1.NSArray

NSArray是不可变的数组,一旦初始化完成就不能对这个数组进行插入删除等操作,只能对其重新赋值。NSArray只能储存Objective-C对象,另外,数组的最后一个元素一定是nil,表示结束。

数组的创建

// 创建一个空数组

NSArray*arr=[NSArrayarray];

// 创建装进一个元素的数组

NSArray*array1=[NSArrayarrayWithObject:@”obj”];

// 创建装进多个元素的数组

// nil 是用来作为数组元素结束的标记,不是数组元素

NSArray*array2=[NSArrayarrayWithObjects:@”obj1″,@”obj2″,@”obj3″,nil];

// 通过已有数组来创建一个新数组

NSArray*array3=[NSArrayarrayWithArray:array2];

// 快速创建OC数组

NSArray*array4=@[@”111″,@”222″,@”333″];// 编译器特性,实质就是arrayWithObjects:方法

NSLog(@”array1 :%@”,array1);

NSLog(@”array2 :%@”,array2);

NSLog(@”array3 :%@”,array3);

NSLog(@”array4 :%@”,array4);

//实例方法创建数组

NSArray*array5=[[NSArrayalloc]initWithObjects:@”aaa”,@”bbb”,nil];

NSLog(@”array5 :%@”,array5);

《Foundation框架(二) — NSArray、NSMutableArray》

数组常用方法

// 快速创建一个数组

NSArray*arr=@[@”123″,@”234″,@”456″];

// 获取数组中元素个数(也可使用点语法)

NSLog(@”arr count :%lu”,[arr count]);

// 查找某个对象所在索引

NSUIntegerindex=[arr indexOfObject:@”456″];

NSLog(@”index = %lu”,index);

// 访问索引对应的元素

id obj=[arr objectAtIndex:0];

NSLog(@”obj = %@”,obj);

// 快速访问下标对应元素

obj=arr[0];// 编译器特性,实质就是objectAtIndex:方法

NSLog(@”obj = %@”,obj);

// 追加一个对象到数组(返回新的array对象)

NSArray*arr2=[arr arrayByAddingObject:@”888″];

NSLog(@”arr2 = %@”,arr2);

// 判断数组是否包含指定对象

BOOL b=[arr2 containsObject:@”xyz”];

NSLog(@”b = %d”,b);

b=[arr isEqualToArray:arr2];

NSLog(@”b = %d”,b);

// 获得第一个元素

NSLog(@”first = %@”,arr2.firstObject);

// 获得最后一个元素

NSLog(@”last = %@”,arr2.lastObject);

// 根据指定的字符串连接数组元素

NSString*linkedString=[arr2 componentsJoinedByString:@”|”];

NSLog(@”linkedString :%@”,linkedString);

    原文作者:雨夜的泪
    原文地址: https://www.jianshu.com/p/8a8899ce59b0
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞