Objective C语法之NSArray

1.声明

存放的是OC对象,int等非对象不能存放

NSArray *arr=@[@"jack",@"rose",@"mary"];

NSArray *arr=[NSArray arrayWithObjects:@"jack",@"rose",@"mary",nil];

2.取值

NSString *str=arr[0];

NSString *str1=[arr objectAtIndex:1];

NSUInteger size=arr.count; 或[arr count]

3.是否包含元素

BOOL res=[arr containsObject:@"lilei"];

4.查找元素索引

NSUInteger index=[arr indexOfObject:@"rose"];

if(index==NSNotFound)

{

      NSLog(@"未找到rose");

}else

{

     NSLog(@"找到rose了");

5.数组遍历

for循环

NSUInteger size=arr.count;

for(int i=0;i<size;i++)

{

     NSLog(@"%@",arr[i]);

 NSLog(@"%@",[arr objectAtIndex:i]);

}

for in循环,相当于java foreach

比如遍历存放NSString的NSArray

for(NSString *str in arr)

{

         NSLog(@"%@",str);

}

当数组中类似不一致,使用id来遍历

for(id *id in arr)

{

         NSLog(@"%@",id);

}

通过代码块来遍历

[arr enumerateObjectsUsingBlock:^(id _Nonnull obj,NSUInteger idx,BOOL * _Nonnull stop){

    NSLog(@"%@",obj);

}]; 

obj遍历的对象,idx索引,stop是否停止遍历,改成YES停止

6.将数组中元素串联

NSString *str=[arr componentsJoinedByString:@"$"]

7.可变数组 NSMutableArray,是NSArray的子类

下面创建对象效果一样

NSMutableArray ma=[NSMutableArray  new];

NSMutableArray ma=[[NSMutableArray  alloc] init];

NSMutableArray ma=[NSMutableArray  array];

新增元素

添加单个元素

[ma addObject:@"jack"];

添加数组

NSArray *arr=@[@"jack",@"rose"];

[ma addObject:arr];//整个数组作为一个元素
[ma addObjectsFromArray:arr];//将arr中每个元素添加到ma数组

在指定下标处插入元素

[ma insertObject:@"hanmeimei" atIndex:1];

删除元素

[arr removeObjectAtIndex:1];//删除第2个元素

[arr removeObject:@"lilei"];//删除指定值

[arr removeLastObject];//删除最后一个元素

[arr removeAllObjects];//删除所有元素

[arr removeObject:@"lili" inRange:NSMakeRange(0,3)];//删除0,3范围内,lili元素

8.基本类型numberWith***存入NSArray

NSNumber *num1=[NSNumber numberWithInt:10];

NSNumber *num2=[NSNumber numberWithFloat:20.8];

NSNumber *num3=@36.6;

NSArray *arr=@[num1,num2,num3];