【语法】数组Array

请参照NSArray练习

【1】数组的创建

数组是不能添加元素的,只能在创建的同时赋值。

1.创建数组

  //静态方法不需要管理内存
    NSArray *array= [NSArray array];  //这样创建是没有数组的,是创建空的数组
    array= [NSArray arrayWithObject:@"123"];//创建一个有1个元素的数组。
    array= [NSArray arrayWithObjects:@"1",@"2",@"3", nil];//这里是创建一个有多个元素的数组   //nil在这里表示是一个结束符类似于/0.
    

 

2.查询数组内元素个数

    //查询元素个数
   int count=[array count];//用来计算数组内部有多少个元素
    
    //同上面等价
    int count =array.count;
    
    NSLog(@"%i",count); //输出

 

3.数组中既可以放元素,也可以放数组

    //或者有一种方式就是arrary1中既可以放元素,也可以放数组
    NSObject *obj=[[NSObject alloc] init];
    NSArray *array1=[NSArray arrayWithObjects:@"a",@"b",@"c",obj, nil];
    NSLog(@"%@",array1);

 

 

【2】数组的查询

1.是否包含某元素

【语法】数组Array
  //判断字符数组中是否包含某元素
    NSArray *array=[NSArray arrayWithObjects:@"1",@"2",@"3", nil];
    if([array containsObject:@"1"]){
        NSLog(@"包含了字符");
        
    }else
    {
        NSLog(@"不包含该字符");
    }
【语法】数组Array

 

2.判断数组内最后一个元素是什么

 //判断最后一个元素是什么
    NSString *last=[array lastObject];
    NSLog(@"last=%@",last);

 

3.通过索引查询该索引值对应的元素

    
    //根据某个索引值然后找到该位置的元素是什么
    NSString *str=[array objectAtIndex:1];
    NSLog(@"%@",str);
    

 

4.通过元素查询索引值(如果是负数,那么就是查找不倒。)

  //根据某个元素,查找到该元素的索引位置
    //如果是负数,那么就是查找不倒。
    int index=[array indexOfObject:@"2"];
    NSLog(@"index=%i",index);
    

 

【3】数组的比较

1.比较两个集合内容是否相同

//比较两个集合内容是否相同
 -(BOOL)isEqualToArray:(NSArray  *)otherArray

 

2.返回第一个相同的对象元素

 //返回两个集合中第一个相同的对象元素
 -(id)firstObjectCommonWithArray:(NSArray *)otherArray

 

 

【4】数组的遍历

1.for循环进行遍历

【语法】数组Array
void arrayFor(){
    
    NSArray *array=[NSArray arrayWithObjects:@"1",@"2",@"3", nil];
    int count =array.count;
    for(int i=0;i<count;i++)
    {
        id obj=[array objectAtIndex:i];
        NSLog(@"%i-%@",i,obj);
    }
}
【语法】数组Array

 

2.快速遍历方法

【语法】数组Array
void arrayFor2(){
    
    NSArray *array=[NSArray arrayWithObjects:@"1",@"2",@"3", nil];
    int i=0;
    for(id obj in array){
        NSLog(@"%i-%@",i,obj);
        i++;
    }

}
【语法】数组Array

 

3.快速遍历方法

enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop)
如图打入这种方法的时候将
^(id obj, NSUInteger idx, BOOL *stop)这一句进行双击展开

【语法】数组Array  

展开成为:

【语法】数组Array  

例子如下:
【语法】数组Array
void arrayFor3(){
    
    NSArray *array=[NSArray arrayWithObjects:@"1",@"2",@"3",@"4", nil];
[array enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
    //每遍历一个元素都会调用一次block
    //利用指针修改外面bool变量值
    if(idx==1){
     *stop=YES;//传入一个stop指针让内部能进行修改
    }
    NSLog(@"%i-%@",idx,obj);
}];
}
【语法】数组Array

 

4.使用迭代器进行遍历

   NSArray *array=[NSArray arrayWithObjects:@"1",@"2",@"3", nil];
   NSEnumerator *enumerator=[array objectEnumerator];//获取数组的迭代器

 

5.反序迭代器,从尾部开始遍历

    NSArray *array=[NSArray arrayWithObjects:@"1",@"2",@"3", nil];
  //反序迭代器,从尾部开始进行遍历
    NSEnumerator *enumerator=[array reverseObjectEnumerator];

 

6.取得下一个需要遍历的元素

    [enumerator nextObject];//取得下一个需要遍历的元素
    id obj=nil;
    while (obj=[enumerator nextObject]) {
        NSLog(@"obj=%@",obj);
    }
    

 

7.返回迭代器中的所有元素

    //返回迭代器中的所有元素
   NSArray *array2=[enumerator allObjects];
    NSLog(@"array2:%@",array2);
    
    

 

 

【语法】数组Array

上一篇:Durandal介绍


下一篇:HEVC(H.265)标准的编码器(x265,DivX265)试用