NSArray
来源:互联网 发布:ios武侠游戏知乎 编辑:程序博客网 时间:2024/06/01 12:35
- 这个是用来存储OC对象的数组,记住,只能存储OC对象,非OC对象编译就直接报错
- 这是1个类
- 特点:
- 存储多个数据
- 长度固定
- 只能存储OC对象
- 每1个元素都是有序的
- 创建字符串的时候,不要使用new array alloc等来创建,因为创建出来的数组长度是0,没有意义
最常用的创建NSArray数组的方法:
- arrayWithObjects
NSArray *arr = [NSArray arrayWithObjects:@"jack",@"rose",@"lilei", nil]; NSLog(@"%@",arr);
注意:
- 最后要写1个nil 代表结束
- 写在中间的nil,会认为元素到这里就结束 -
取出数组元素的值
- NSArray数组名[下标];
- 如果下标越界,直接报错
- 调用方法:
- NSString *str = [arr objectAtIndex:0];
- NSArray数组的元素:
- 是id类型的,所以可以存储任意的OC对象
- 取出来的元素可以赋值给任意的指针变量
- 取出NSArray数组的元素不能使用点语法
- 可以在NSLog中使用%@将元素全部输出
- 取出元素的个数
NSArray *arr = [NSArray arrayWithObjects:@"jack",@"lili",@"rose", nil]; NSUInteger num = arr.count; NSLog(@"%lu",num);
- 取出下标的元素的值
NSArray *arr = [NSArray arrayWithObjects:@"jack",@"lili",@"rose", nil]; NSLog(@"%@",[arr objectAtIndex:1]) ;
- 判断是否包含某个元素
NSArray *arr = [NSArray arrayWithObjects:@"jack",@"lili",@"rose", nil];// NSLog(@"%@",[arr objectAtIndex:1]) ; BOOL res = [arr containsObject:@"lili"]; if (res == YES) { NSLog(@"包含"); }else { NSLog(@"不包含"); }
- 取出首个元素
NSArray *arr = [NSArray arrayWithObjects:@"jack",@"lili",@"rose", nil]; NSString *str = arr.firstObject; NSLog(@"%@",str);
- 取出最后的元素
NSArray *arr = [NSArray arrayWithObjects:@"jack",@"lili",@"rose", nil]; NSString *str =arr.lastObject; NSLog(@"%@",str);
- 取出某个元素第一次出现的下标
NSArray *arr = [NSArray arrayWithObjects:@"jack",@"lili",@"jack",@"rose", nil]; NSUInteger num = [arr indexOfObject:@"jack"]; NSLog(@"%lu",num);
- 指定范围内元素出现的第一次的下标
NSArray *arr = [NSArray arrayWithObjects:@"jack",@"lili",@"jack",@"rose", nil]; NSUInteger num = [arr indexOfObject:@"jack" inRange:NSMakeRange(1,2)]; NSLog(@"%lu",num);
NSArray数组的简要初始化
NSArray *arr = @[@"jack",@"lilei",@"lili"];
不必在后面加nil
遍历
NSArray *arr = @[@"jack",@"lilei",@"lili"]; for (int i = 0 ; i<arr.count; i++) { NSLog(@"arr[%d] = %@",i,arr[i]); }
这里使用for循环遍历
NSArray *arr = @[@"jack",@"lilei",@"lili"]; for(NSString *str in arr) { NSLog(@"%@",str); }
使用for增强
使用block遍历NSArray数组
- (void)enumerateObjectsUsingBlock:(void (^)(id obj, NSUInteger idx, BOOL *stop))block
NSArray *arr = @[@"jack",@"lilei",@"lili"]; [arr enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) { NSLog(@"arr[%lu] = %@",idx,obj); if (idx == 1) { *stop = YES; } }];
0 0
- NSArray
- NSArray
- NSArray
- NSArray
- NSArray
- NSArray
- NSARRAY
- NSArray
- NSArray
- NSArray
- NSArray
- NSArray
- NSArray
- NSArray
- NSarray ...............
- NSArray
- NSArray
- NSArray
- TextView如何在超出来的字数后用省略号显示?
- MySQL嵌套查询
- 关于farpoint设置自动列宽行高及单元格内容自动换行举例
- 一些重要的C++ 基础
- TortoiseGit 上传项目到GitHub
- NSArray
- Spring Batch Hello World Example(一)
- hdoj 5476 Explore Track of Point 【托勒密定理】
- Lucene入门教程
- 存储系统层次结构
- gtk+ 环境下,遇到assertion 'GTK_IS_NOTEBOOK (notebook)' failed,怎么破?
- 一步一步学jQuery(二)
- 手游创业漫话一 你适合创业吗?
- Lucene入门教程