iOS笔记--oc语法9(NSArray相关知识)
2016-05-04 23:26
447 查看
声明:此为本人学习笔记,若有纰漏错误之处的可留言共同探讨
NSArray是OC语言的数组。区别于C语言数组的特点在于OC数组是一个对象,数组里面存储的也是一个个对象。不能直接存储基本数据类型(如int、long、short等等)。假如项目需求需要的话,可以先想基本数据类型转化成对象再进行存储。
我们来看看NSArray的几种创建方法
1通过对象的方法创建
// 1通过对象来创建数组
NSArray *arr1 = [[NSArray alloc]initWithObjects:@"string1", @"string2",@"string3" , nil];
// 2 通过一个数组了创建
NSArray *arr2 = [[NSArray alloc]initWithArray:arr1];
2 通过类方法来创建
// 3 通过对象来创建
NSArray *arr3 = [NSArrayarrayWithObjects:@"对象1", @"对象2",@"对象3", nil];
// 4 通过一个数组了创建
NSArray *arr4 = [NSArrayarrayWithArray:arr1];
3 通过快捷方式创建
NSArray *arr5 = @[@"a",@"b",arr2, @"c", @"d", @"e"];
接下来我们来看看NSArray常用的方法
// 1、获取数组元素个数
NSArray *arr = @[@"1",@"2",@"2",@"2",@"2",@"2"];
NSUInteger count =[arr count];
// 2、通过索引号获取相应的元素(2种)
NSString *s = [arr objectAtIndex:0];
NSString *s2 = arr[3]; // 越界访问元素会导致程序崩溃;
// 3、取出最后一个元素
[arr lastObject];
// 4、通过对象地址获取在数组中的下标
[arr indexOfObject:@"five"]; // 如果没找到返回NSNotFound,找到返回下标
// 5、判断数组中数组包含元素anObject
[arr containsObject:@"five"];
6、取出数组中的一部分元素
// 1)subarrayWithRange消息
// 作用:取出数组中指定范围内range的元素
NSArray *a = [arrsubarrayWithRange:NSMakeRange(3, 5)];
2)objectsAtIndexes消息
作用:从数组中获取指定下标的元素
// 获取数组部分内容:(下标不连续)
// NSMutableIndexSet: 整数集合类;
NSMutableIndexSet *indexSet =[[NSMutableIndexSet alloc] init];// 创建一个空的整数集合对象;
// 需求: 获取arr数组第0,3,5,6个元素;
[indexSet addIndex:0]; // 把整数0添加进去
[indexSet addIndex:3]; // 把整数3添加进去
[indexSet addIndex:5]; // 把整数5添加进去
[indexSet addIndex:6]; // 把整数6添加进去
//调用方法objectsAtIndexes:根据indexSet里面整数序号获取对象的元素,组成数组返回
NSArray *b =[arrobjectsAtIndexes:indexSet];
NSLog(@"%@",b);
6、判断NSArray中存储的对象是否为指定类型的对象
因为NSArray里面存储任意类型对象, 怎么才知道存储的对象是属于哪一个类;
isKindOfClass使用
[对象 isKindOfClass:[类名 class]] 判断对象是否属于该类; 如果属于返回YES,否则返回NO;
NSArray数组的遍历
用c语言的遍历方法遍历一个数组的所有元素
1、通过下标遍历数组
for(NSInteger i = 0; i < [arr count] ;i++)
{
arr[i];
}
2、NSEnumerator 枚举器
1)objectEnumerator消息
作用:正序输出所有元素
2)reverseObjectEnumerator消息
作用:逆序输出所有元素
3、快速枚举法
1)for in 语法
NSArray是OC语言的数组。区别于C语言数组的特点在于OC数组是一个对象,数组里面存储的也是一个个对象。不能直接存储基本数据类型(如int、long、short等等)。假如项目需求需要的话,可以先想基本数据类型转化成对象再进行存储。
我们来看看NSArray的几种创建方法
1通过对象的方法创建
// 1通过对象来创建数组
NSArray *arr1 = [[NSArray alloc]initWithObjects:@"string1", @"string2",@"string3" , nil];
// 2 通过一个数组了创建
NSArray *arr2 = [[NSArray alloc]initWithArray:arr1];
2 通过类方法来创建
// 3 通过对象来创建
NSArray *arr3 = [NSArrayarrayWithObjects:@"对象1", @"对象2",@"对象3", nil];
// 4 通过一个数组了创建
NSArray *arr4 = [NSArrayarrayWithArray:arr1];
3 通过快捷方式创建
NSArray *arr5 = @[@"a",@"b",arr2, @"c", @"d", @"e"];
接下来我们来看看NSArray常用的方法
// 1、获取数组元素个数
NSArray *arr = @[@"1",@"2",@"2",@"2",@"2",@"2"];
NSUInteger count =[arr count];
// 2、通过索引号获取相应的元素(2种)
NSString *s = [arr objectAtIndex:0];
NSString *s2 = arr[3]; // 越界访问元素会导致程序崩溃;
// 3、取出最后一个元素
[arr lastObject];
// 4、通过对象地址获取在数组中的下标
[arr indexOfObject:@"five"]; // 如果没找到返回NSNotFound,找到返回下标
// 5、判断数组中数组包含元素anObject
[arr containsObject:@"five"];
6、取出数组中的一部分元素
// 1)subarrayWithRange消息
// 作用:取出数组中指定范围内range的元素
NSArray *a = [arrsubarrayWithRange:NSMakeRange(3, 5)];
2)objectsAtIndexes消息
作用:从数组中获取指定下标的元素
// 获取数组部分内容:(下标不连续)
// NSMutableIndexSet: 整数集合类;
NSMutableIndexSet *indexSet =[[NSMutableIndexSet alloc] init];// 创建一个空的整数集合对象;
// 需求: 获取arr数组第0,3,5,6个元素;
[indexSet addIndex:0]; // 把整数0添加进去
[indexSet addIndex:3]; // 把整数3添加进去
[indexSet addIndex:5]; // 把整数5添加进去
[indexSet addIndex:6]; // 把整数6添加进去
//调用方法objectsAtIndexes:根据indexSet里面整数序号获取对象的元素,组成数组返回
NSArray *b =[arrobjectsAtIndexes:indexSet];
NSLog(@"%@",b);
6、判断NSArray中存储的对象是否为指定类型的对象
因为NSArray里面存储任意类型对象, 怎么才知道存储的对象是属于哪一个类;
isKindOfClass使用
[对象 isKindOfClass:[类名 class]] 判断对象是否属于该类; 如果属于返回YES,否则返回NO;
NSArray数组的遍历
用c语言的遍历方法遍历一个数组的所有元素
1、通过下标遍历数组
for(NSInteger i = 0; i < [arr count] ;i++)
{
arr[i];
}
2、NSEnumerator 枚举器
1)objectEnumerator消息
作用:正序输出所有元素
2)reverseObjectEnumerator消息
作用:逆序输出所有元素
3、快速枚举法
1)for in 语法
相关文章推荐
- iOS自定义控件(@IBDesignable与@IBInspectable)
- iOS开发中nil、Nil、NULL和[NSNull null]的区别
- iOS程序添加icon图标/启动画面的制作
- iOS 计算文字高度
- iOS页面间传值的方式(Delegate/NSNotification/Block/NSUserDefault
- ios - kvo观察者示例
- ios - 谓词的使用
- cocoaPods 使用
- iOS自定义backBarButtonItem的点击事件
- 一步一步 搞定RSA(公钥、私钥)
- iOS开发 CoreMotion 获取当前运动状态 步行/跑步/自行车/驾车 CMMotionActivityManager
- App Extension编程指南(iOS8/OS X v10.10)中文版
- iOS边练边学--NSURLSessionDataTask实现文件真正的断点续传
- iOS tableView 一共0行时候去掉分割线 和 去掉多余分割线
- iOS开发系列--通知与消息机制
- iOS开发使用半透明模糊效果方法整理
- iOS通知NSNotificationCenter的使用
- iOS的内存管理
- iOS自定义控制中心音乐播放 锁屏界面背景图片
- IOS开发】@selector 调用方法,传递多参数。