数组类的初级使用
创建一个不可变数组
NSArray *array1 = [NSArray arrayWithObject:@"hello"]; NSLog(@"%@",array1);
在创建有多个元素的数组时,需要在元素的结尾处,且只能在结尾处添加一个nil对象,表示数组元素到此结束
NSArray *array2 = [NSArray arrayWithObjects:@"hello",@"everyone", nil]; NSLog(@"%@",array2);
如果数组中 某个元素不能确定 我们可以用nsnull对象来占位
NSArray *array3 = [NSArray arrayWithObjects:@"hello",[NSNull null],@"xaiji", nil]; NSLog(@"%@",array3);
不可变数组操作
获取数组元素的个数
int a = (int)[array3 count]; NSLog(@"%d",a);
不可变数组操作
获取某个索引值位置的元素
因为不能确定获取到的元素属于哪一个类,所以这里定义的对象时泛型
instancetype只能用于返回值部分,用于保证返回值的安全,不能够用在这里声明一个对象,这里只能用id
id temp = [array3 objectAtIndex:2]; NSLog(@"%@",temp);
获取某个元素在数组中的索引,如果这个对象不在数组中 则返回一个负数
int index = (int)[array3 indexOfObject:temp]; NSLog(@"%d",index);
遍历数组,使用for循环
for (int i = 0; i < [array3 count]; i++) { id object = [array3 objectAtIndex:i]; NSLog(@"%@",object); }
使用for ... in进行遍历
obj表示数组中单个元素 array3表示要遍历的数组
注意:用for...in 遍历的数组 不能对数组进行操作(添加,删除操作) 因为for ... in 操作中里面的count是个固定的数字!!!
for (id obj in array3) {
NSLog(@"%@ ",obj); }
可变数组操作
创建一个可变数组
NSMutableArray *marray = [NSMutableArray arrayWithObjects: @"1",@"2",@"3",@"4", nil];
给数组添加一个新元素
[marray addObject:@"5"]; NSLog(@"%@",marray);
插入一个新元素到指定位置
[marray insertObject:@"6" atIndex:3]; NSLog(@"%@",marray);
交换指定位置的元素
[marray exchangeObjectAtIndex:3 withObjectAtIndex:4]; NSLog(@"%@",marray);
替换某个元素
[marray replaceObjectAtIndex:4 withObject:@"hello"]; NSLog(@"%@",marray);
删除元素
根据下标删除元素
[marray removeObjectAtIndex:4]; NSLog(@"%@",marray);
直接删除指定对象
[marray removeObject:@"5"]; NSLog(@"%@",marray);
删除最后一个元素
[marray removeLastObject]; NSLog(@"%@",marray);
删除全部元素
[marray removeAllObjects]; NSLog(@"%@",marray);
NSnumber专门将基本数据类型封装为oc中的对象
整型数转化为NSnumber对象
NSNumber *intNumber = [NSNumber numberWithInt:10]; NSLog(@"%@",intNumber);
将NSnumber转换为基本类型
int d = [intNumber intValue]; NSLog(@"%d",d);
NSNumber *floatNumber = [NSNumber numberWithFloat:15.3];
float e = [floatNumber floatValue];
逆向倒转
NSLog(@"%@ %.2f",floatNumber,e);
网友评论