NSArray和NSMutableArray

倾然丶 夕夏残阳落幕 提交于 2019-12-05 22:34:32

一、NSArray的基本介绍:

NSArray是OC语言中的数组类,可以存放多种类型的数据。

二、NSArray的初始化:

//只有一个数据的数组 
NSArray *arr1 = [NSArray arrayWithObject:@"1"];

NSArray *arr2 = [NSArray arrayWithObjects:@"2",@"3",@"4",nil];        
//用数组生成另一个数组
NSArray *arr3 = [NSArray arrayWithArray:arr2];        
//多个数据的数组初始化(最常用)
 NSArray *arr4 = @[
                   arr1,
                   arr2,
                   arr3
                  ];

for (int i = 0; i < 3; i++) {
            
     NSLog(@"arr%d - %@",i,arr4[i]);
            
 }

三、NSArray的常见用法:

//初始化字符串arr
NSArray *arr = @[@"1",@"2",@"3",@"a",@"b",@"c",@"你好",@"我好",@"他好"];
//arr.count - 获取数组中元素的个数
NSLog(@"arrr - count - %lu",(unsigned long)arr.count);
//objectAtIndex - 获得某个位置的元素
NSLog(@"arr - 2 - %@",[arr objectAtIndex:2]);
//containsObject - 检查某个元素是否存在,存在返回1,否则返回0;
NSLog(@"arr- contain - %d",[arr containsObject:@"1"]);
//查找某个元素在数组中的位置,(如果找不到,返回-1)
NSLog(@"arr - indexOF1 - %lu",(unsigned long)[arr indexOfObject:@"1"]);
//返回数组中第一个元素 - arr.firstObject
NSLog(@"arr - first - %@",arr.firstObject);
//返回数组中最后一个元素 - arr.lastObject
NSLog(@"arr - first - %@",arr.lastObject);

四、NSArray的遍历方法:

//1、NSArray的普通遍历
NSArray *arr = @{@"1",@"a",@"asd"}
for (int i = 0; i<array.count; i++) { 
   NSLog(@"arr[%d] - %@",i,arr[i]);
 }
//2、NSArray的快速遍历
for (id obj in array) { 
   NSLog(@"obj - %@",obj);
 }
//3、NSArray使用block进行遍历
[array enumerateObjectsUsingBlock:^(id obj, NSUInteger  idx, BOOL *stop) {

}];

五、NSArray的读写文件操作:

//1、NSArray数据写入到文件中
NSArray *array = @[@"a",@"b"];
BOOL res = [array writeToFile:@"/Users/sleepingsun/Desktop/test.txt" atomically:YES];

NSLog(@"%@",array);
//2、从文件中读取数据到NSArray中

NSArray *array1 = [NSArray arrayWithContentsOfFile:@"/Users/sleepingsun/Desktop/test.txt"];

NSLog(@"%@",array1);

六、NSArray和NSString的相互转化:

 //初始化字符串
NSString *str = @"床前山月光 疑是地上霜 举头望明月 低头思故乡";
//NSString转化为NSArray - componentsSeparatedByString - 把字符串分割成数组元素       
NSArray *arr = [str componentsSeparatedByString:@" "]; 
for (NSString *temp in arr) {
     NSLog(@"temp - %@",temp);
}  
//NSArray转化为NSString  - componentsJoinedByString - 把数组元素拼接成字符串
NSString *str2 = [arr componentsJoinedByString:@","];
NSLog(@"str2 - %@",str2);

七、NSMutableArray及基本使用

  • NSMutableArray是NSArray的子类。NSArray是不可变的,一旦初始化完毕后, 它里面的内容就永远是固定的,不能删除里面的元素,也不能再往里面添加元素。
  • NSMutableArray是可变的, 随时可以往里面添加\更改\删除元素
//1.初始化 生成一个完全空的数组
NSMutableArray *arr = [NSMutableArray array];        
//2.通过一个不可变数组变成可变数组
NSMutableArray *arr2 = [NSMutableArray arrayWithArray:@[@"1",@"2"]];
NSMutableArray *arr3 = [@[@"1",@"2"] mutableCopy];
//3.增加元素
[arr addObject:@"1"];
//把arr2的所有元素添加到arr中
[arr addObjectsFromArray:arr2];
//在数组的某个位置插入一个元素
[arr insertObject:@"2" atIndex:1];
//4.删除元素
//删除所有元素
[arr removeAllObjects];
//删除最后一个元素
[arr removeLastObject];
//删除特定元素        
[arr removeObject:@"1"];
//删除数组中某位的元素
[arr removeObjectAtIndex:3];
//删除rang范围内的所有元素
[arr removeObjectsInRange:rang];
//5.修改元素 - replaceObjectAtIndex
//把第0位的元素修改为2
[arr replaceObjectAtIndex:0 withObject:@"2"];
arr[0] = @"2"
//把第0位的元素和第1位的元素交换
[arr exchangeObjectAtIndex:0 withObjectAtIndex:1];

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!