黑马程序员技术交流社区

标题: OC学习笔记之NSArray and NSMutableArray [打印本页]

作者: zhuhoulin    时间: 2015-7-26 21:38
标题: OC学习笔记之NSArray and NSMutableArray
NSArray//OC中提供数组的一个类
     1.NSArray基础
        (1)开发中尽量使用NSArray,因为C中的数据只能存放一种类型的数据,不能很方便的动态添加元素、不能很方便的
            动态删除数组元素
        (2)只能存放对象,并且下标有序
            不能存储非OC对象,如int\float\double\char\enum\struct等
            它是不可变的,一旦初始化完毕,它里面的内容是固定的,不可修删改
     2.NSArray的创建方式
        (1)NSArray的类方法创建

     3.NSArray的常见用法
       (1)-(NSRUInteger)count方法-----获取当前数组的长度
       (2)-(id)objectAtIndex:(NSUInteger)index------获取index位置的元素
       (3)-(BOOL)containsObject:(id)anObject--------数组中是否包含某个对象
       (4)-(id)lastObject-------返回最后一个元素
       (5)-(id)firstObject-------返回第一个元素
       (6)-(NSUInteger)indexofbject:(id)anobject-----查找anobject元素在数组中的位置,如果找不到,返回-1(NSNotFound)
       (7)-(NSUInteger)indexofobject:(id)anobject inRange:(NSRange)range;----在range范围内查找anobject元素在数组中的位置

     4.NSArray的遍历方法
       (1)NSArrya下标遍历
           NSArray *arr = @[@"one",@"two",@"three",@"four"];
           for(int i=0;i<arr.count;i++){
                NSLog(@"->%@",arr[i]);
           }
       (2)快速枚举法(for循环的增强方式forin)
           for(NSString * int arr){
                NSLog(@"->%@",arr);
           }
       (3)使用block方法进行访问
           [arr enumerate3objectsUsingBlock:^(id obj,NSUInteger idx,BOOL *stop){
                     if(idx ==2){
                         *stop = YES;
                     }
                     else{
                          NSLog(@"idx = %ld,obj = %@",idx,obj);
                     }
           }];
    5.NSSArray和字符串之间的关系
       1.把数组元素连成一个字符串
          NSArray *arr = @[@1,@2,@3,@4];
          NSString *str = [arr componentsJoineByString:@"-"];
       2.把字符串分成若干个元素,并依次存放进入数组中
          NSString *str2 = @"400-800-1258";
          NSArray *arr2 = [str2 compontsSepatatedBystring:@"-"]
          str2 = @"400-800-1258#400-800-1257";
          NSArray *arr3 = [str2 componentsSeparatedByString:@"#"];
          NSArry *arr4 = [arr3 fistObject] componentsSeparatedByString:@"--"]
          NSArry *arr5 = [arr3 lastObject] componentsSeparatedByString:@"--"]


NSMutableArray及基本使用
   1.基本使用
     NSArray初始化之后,内容永远固定,NSMutableArray可以改变
     (1)创建
         //创建空数组
         NSMutableArray *arr1 = [NSMutableArray array];
         //创建的时候初始化一个元素
         NSMutableArray *arr2 = [NSMutableArray arrayWithObject:@"one"];
         //创建的时候,初始化多个元素
         NSMutableArray *arr3 = [NSMutableArray arrayWithObject:@"one",@3];
         //创建一个数组,并且指定其长度(该长度随着数组元素的增加是可以改变的)
          NSMutableArray *arr3 = [NSMutableArray arrayWithCapacity:5];
     (2)添加元素
         [arr1 addObject:@"fengjie"];
         还可以添加整个数组
         -(void)addObjectsFormArdObray:(NSArray *)array;
         在指定位置插入元素
         [arr1 inserObject:@"zbz" atIndex:0];
     (3)删除元素
         根据对象删除
         [arr1 removeObject:@"zbz"];
         根据位置删除
         [arr1 removeObjectAtIdex:1];
         全部删除
         [arr1 removeAllObjects];
     (4)修改元素
         [arr3 replaceObjectAtIndex:1 withOvject:@"four"];
     (5)查找元素
         BOOL isSearch = [arr3 containObject:@"four"];
     (6)元素交换
         [arr3 exchangeObjectAtIndex:0 withObjectAtIndex:4];
   2.错误的使用
      NSMutableArray *array =@ [@"bob",@"steve",@"john"];//后面是给不可变量赋值的。







欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2