码迷,mamicode.com
首页 > 其他好文 > 详细

NSArray 基本用法

时间:2016-01-21 19:20:50      阅读:169      评论:0      收藏:0      [点我收藏+]

标签:

NSArray数组
    
    //类方法创建数组(空数组,没有意义)
    NSArray *array = [NSArray array];
    
    //实例方法创建数组(空数组)
    NSArray *array1 = [[NSArray alloc]init];
    
    //创建一个数组并初始化元素  nil表示数组结束
     NSArray *array2 = [NSArray arrayWithObjects:@"wukong",@"八戒",@"baigujing", nil];
    
    //用一个数组去创建一个新数组(相当于数组拷贝)
    NSArray *array3 = [NSArray arrayWithArray:array2];
    
    
    //快速创建
    NSArray *array4 = @[@"1",@"ret",@"frsgdfh"];
    
    //实例方法指定对象创建数组
    NSArray *array5 = [[NSArray alloc]initWithObjects:@"3",@"JDS",@"f", nil];
    
    //数组元素个数
    NSLog(@"%ld",[array5 count]);
    
    //访问数组元素
    NSLog(@"%@",[array5 objectAtIndex:1]);
    NSLog(@"%@",array5[1]);
    
    //是否包含某一对象(调用这个对象的isEqual方法)
    BOOL isContain = [array containsObject:@"1"];
    
    //字符串切割成数组
    NSString *string7 = @"20|http://www.baidu.com";
    NSArray *a = [string7 componentsSeparatedByString:@"|"];
    for (int i = 0; i < [a count]; i++) {
        NSLog(@"%@",a[i]);
    }

    
    
    //可变数组(一定要初始化)
    //创建可变数组(不能像NSArray那样快速创建)
    NSMutableArray *mArray = [NSMutableArray array];
    NSMutableArray *mutableArray1 = [[NSMutableArray alloc]init];//实例变量初始化
    //创建时该数组可容纳元素个数
    NSMutableArray *arr = [NSMutableArray arrayWithCapacity:10];
    
    
    
    //添加数组元素
    [mutableArray1 addObject:@"xiaobai"];
    //添加多个数组元素
    mutableArray1.array = @[@"ds",@"3",@"rt"];
    //在指定下标插入元素
    [mutableArray1 insertObject:@"xiaohei" atIndex:1];
    
    //删除数组末尾元素
    [mutableArray1 removeLastObject];
    
    //删除所有元素
    [mutableArray1 removeAllObjects];
    
    //根据元素对象删除数组对应元素(通过isEqual方法比较)
    [mutableArray1 removeObject:@"xiaohei"];
    
    //根据数组元素下标,删除对应元素
    [mutableArray1 removeObjectAtIndex:0];
    
    //遍历数组
    NSArray *array6 = [NSArray arrayWithObjects:@"Naruto",@"Luffy",@"Sasuke",@"Zoro",@"Conan",@"Kakashi", nil];
    for (int i = 0; i < [array6 count]; i++) {
        NSLog(@"%@",[array6 objectAtIndex:i]);
        NSLog(@"%@",array6[i]);
    }
    
    for (NSString *str in array6) {
        NSLog(@"%@",str);
    }
    
    //获取数组第一个元素
    NSLog(@"%@",[array6 firstObject]);
    
    //获取数组最后一个元素
    NSLog(@"%@",[array6 lastObject]);
    
    
    
    // 字符串转数组
    NSString *string = @"1 2 3 4 5 6";
    //  使用字符串来分割原来的字符串成一个数组
    NSArray *array14 =  [string componentsSeparatedByString:@" "];
    
    NSLog(@"%@",array14);
    //  把数组组装字符串
    NSString *str = [array componentsJoinedByString:@"-"];
    NSLog(@"%@",str);

    
    
    //  让数组中的所有元素执行某个方法
    [array makeObjectsPerformSelector:@selector(bark)];
    [array makeObjectsPerformSelector:@selector(eat:) withObject:@"骨头"];
    
    //遍历数组
    //  使用普通for
     NSArray *arr3 = @[@"re",@"fd",@"s"];
    
        for (int index = 0; index < array.count; index++) {
              NSString *sss =  array[index];
              NSLog(@"%@",sss);
        }
     // 使用增加for(最常用)
   
        for (NSString *str in arr) {
    
            NSLog(@"%@",str);
    
        }
    
    //  通过枚举器
        NSEnumerator *enumer  =  [arr objectEnumerator];
        NSString *newDog;
        while (newDog = [enumer nextObject]) {
            NSLog(@"%@",newDog);
        }
    
    //  通过block方式
    //   idx 表示这个元素在数组索引
    //   stop 设置为YES 那么就不往后遍历的
    [arr enumerateObjectsUsingBlock:^(NSString * dog, NSUInteger idx, BOOL *stop) {
        NSLog(@"%@-%zd",dog,idx);
        if (idx == 2) {
            *stop = YES;
        }
    }];

    
    数组排序
// 使用比较器(block)
//        array = [array sortedArrayUsingComparator:^NSComparisonResult(CZDog * obj1, CZDog *  obj2) {
//    
//            if(obj1.age == obj2.age){
//                return [obj1.name compare:obj2.name];
//            }else if(obj1.age > obj2.age){
//                return NSOrderedDescending;//降序
//            }else{
//                return NSOrderedAscending;//升序
//            }
//
//        return [obj1.name compare:obj2.name];
//        }];
//    NSLog(@"%@",array);
    //属性描述器比较
    NSSortDescriptor *desc1 = [NSSortDescriptor sortDescriptorWithKey:@"age" ascending:YES];
    NSSortDescriptor *desc2 = [NSSortDescriptor sortDescriptorWithKey:@"name" ascending:YES];
    
    array = [array sortedArrayUsingDescriptors:@[desc1,desc2]];
    NSLog(@"%@",array);

 

NSArray 基本用法

标签:

原文地址:http://www.cnblogs.com/naruto-2/p/5148599.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!