【学习ios之路:Objective-C】NSArray和NSMutableArray
来源:互联网 发布:淘宝免费货源怎么找 编辑:程序博客网 时间:2024/06/07 15:44
1.不可变数组(NSArray)
* 通过下标索引对象
①通过下标获取元素
相同点:都是获取数组中的第一个元素.
不同点:当数组中的元素个数为零时,使用第一个方法程序会报错.使用第二个方法程序会 返回nil.程序可以继续执行,
1).不可变数组(NSArray)
*数组中只能存放对象.但是对于对象的类型没有限制.
* 实例化的时候以nil表示结束* 通过下标索引对象
* NSArray无法添加.删除.修改元素.
2).创建对象,数组初始化赋值方法.
//通过初始化添加数组元素 NSArray *array = [[NSArray alloc] initWithObjects: @"dd",@"asdf",@"duc" ,@"xiaozhang",nil]; NSLog(@"%@",array); //通过便利构造器方法添加数组元素 NSArray *array1 = [NSArray arrayWithObjects:@"asd",@"asdf",nil]; NSLog(@"%@",array1); //笑笑语法,语法糖 ---- 字面量 NSArray *array = @[@"aa",@"asd",@"ddd",@"dd"]; NSLog(@"%@",array);3).%p与%@的区别
Person *per = [[Person alloc] init]; NSString *str = [NSString stringWithFormat:@"frank"]; NSLog(@"%@",per);//decription NSLog(@"%@",str);//frank NSLog(@"%p",per);//0x100108120 指针变量存储的地址 NSLog(@"%p",&per);//0x100108120 指针per的地址4).数组常见操作
①通过下标获取元素
//数组的下标 NSArray *array = [NSArray arrayWithObjects:@"sda",@"das",@"saad",nil]; NSUInteger count = [array count];//数组元素个数 NSLog(@"%ld",count); //根据下标取出元素. //NSString *str = [array objectAtIndex:6];//角标越界 NSString *str = [array objectAtIndex:2];//角标越界 NSLog(@"%@",str);//saad NSString *str1 = [array objectAtIndex:0];//第一个元素 NSString *str2 = [array firstObject];//第一个元素 NSLog(@"%@",str1); NSLog(@"%@",str2); NSString *str3 = [array objectAtIndex:count - 1];//最后一个人 NSString *str4 = [array lastObject];//最后一个 NSLog(@"%@",str3); NSLog(@"%@",str4);注: objectAtIndex:count - 1 与 lastObject 方法的区别
相同点:都是获取数组中的第一个元素.
不同点:当数组中的元素个数为零时,使用第一个方法程序会报错.使用第二个方法程序会 返回nil.程序可以继续执行,
②.判断元素是否存在
NSArray *arr = [[NSArray alloc] initWithObjects:@"asdf",@"ddd",@"ccc" ,nil]; BOOL isContain = [arr containsObject:@"ddd"];③.根据对象获取下标
//根据对象获取下标 NSUInteger index = [arr indexOfObject:@"ddd"]; NSLog(@"%ld",index); //NSRange range = NSMakeRange(1,1); //NSUInteger index1 = [arr indexOfObject:@"ccc" inRange:range]; //NSLog(@"%ld",index1);④.不可变数组遍历
NSArray *arr = [[NSArray alloc] initWithObjects:@"asdf",@"ddd",@"ccc" ,nil]; for (NSInteger i = 0;i < [arr count]; i++) { NSLog(@"%@",[arr objectAtIndex:i]); } //for in for (NSString *temp in arr) { NSLog(@"%@",temp); } //NSNumber 类 有接口,有实现 //NSInteger 基本数据类型 //20 是整型数据 @20 整形对象 NSNumber NSArray *str1 = [NSArray arrayWithObjects:@34,@254,@20,@42,nil]; for (NSNumber *num in str1) { NSLog(@"%@",num); }5).可变数组(NSArray)
可变数组与不可变数组的区别:
增加了增删除功能,即在原有的对象基础上做修改.
①创建对象
//快速创建NSMutableArray对象,笑笑语法 NSMutableArray *array1 = [@[@"aa",@"dd",@"asd"] mutableCopy]; //NSMutableArray *mutableArray = [[NSMutableArray alloc] initWithCapacity:1]; NSMutableArray *mutableArray = [[NSMutableArray alloc] init]; //NSMutableArray *mutableArray1 = [NSMutableArray arrayWithObjects: @"asd",@"afg",@"dggd",@"fgads",nil];②往数组中添加元素
//(1).添加一个元素 [mutableArray addObject:@"asd"]; NSLog(@"%@",mutableArray); //(2).插入一个元素. [mutableArray insertObject:@"cdd" atIndex:0]; NSLog(@"%@",mutableArray);③替换元素
[mutableArray replaceObjectAtIndex:0 withObject:@"hhe"]; NSLog(@"%@",mutableArray);④交换下标对应元素
[mutableArray exchangeObjectAtIndex:0 withObjectAtIndex:1]; NSLog(@"%@",mutableArray);⑤移除元素
[mutableArray removeAllObjects]; NSLog(@"%@",mutableArray); (1)移除指定元素 [mutableArray removeObject:@"asd"]; NSLog(@"%@",mutableArray); (2)移除指定下标对应的元素 [mutableArray removeObjectAtIndex:0]; NSLog(@"%@",mutableArray); (3)移除所有元素 [mutableArray removeAllObjects]; NSLog(@"%@",mutableArray);⑥ 快速遍历
for (NSString *str in mutableArray) { NSLog(@"%@",str); }注:
数组中可以存放相同的元素.
数组的使用场景:当需要一个有序的集合来管理对象时,就使用数组.
0 0
- 【学习ios之路:Objective-C】NSArray和NSMutableArray
- Objective-C学习-数组 NSArray 和 NSMutableArray
- Objective-C语法之NSArray和NSMutableArray
- Objective-C语法之NSArray和NSMutableArray
- Objective-C语法之NSArray和NSMutableArray
- Objective-C语法之NSArray和NSMutableArray
- Objective-C语法之NSArray和NSMutableArray
- Objective-C语法之NSArray和NSMutableArray
- Objective-C语法之NSArray和NSMutableArray
- Objective-C语法之NSArray和NSMutableArray
- Objective-C语法之NSArray和NSMutableArray
- Objective-C语法之NSArray和NSMutableArray
- Objective-C语法之NSArray和NSMutableArray
- Objective-C语法之NSArray和NSMutableArray
- Objective-C语法之NSArray和NSMutableArray
- Objective-C语法之NSArray和NSMutableArray
- Objective-c之NSArray(NSMutableArray)
- Objective-c之NSArray(NSMutableArray)
- 在ubuntu中添加新硬盘
- maven构建hibernate入门使用(1)
- tiny6410 开机qt 自启动
- log4j详解与实战
- 【Java】JFrame Helloworld
- 【学习ios之路:Objective-C】NSArray和NSMutableArray
- 使用 Image.SCALE_SMOOTH算法进行图片压缩
- C++ Primer 第四版读书笔记(五)之语句
- 报错:java.lang.OutOfMemoryError: Java heap space
- ubuntu中安装和配置apache2
- Binary Tree Preorder Traversal (Java)
- mfc SetWindowText不起作用
- Andoird 4.2.2的Account Manager原理
- apache commons fileupload 处理文件上传的两种方式(流式和非流式)