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);

浙公网安备 33010602011771号