您的位置:首页 > 职场人生

黑马程序员——Foundation框架——NSArray常用方法

2015-12-05 10:43 447 查看
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

1. NSArray的基本介绍
NSArray是OC中得数组,使用NSArray创建的数组只能存放任意的OC对象,而不能存放非OC对象,比如int,float,double,char等非对象类型,NSArray中存放的元素是有序的。NSArray是不可变的,一旦初始化完毕,里面的内容永远固定,不能删除里面的元素,也不能再向里面添加元素。

2. NSArray创建方式

//创建一个空数组——这样的数组永远是空的,不能向其中增加值
NSArray *arr1=[NSArray array];

//创建只有一个元素的数组
NSArray *arr2=[NSArray arrayWithObject:@"hello"];

//创建有多个元素的数组,nil表示数组赋值结束(此种是用的最多的方法)
NSArray *arr3=[NSArrayarrayWithObjects:@"hello",@"hi",@"1", nil];

//调用对象方法,创建数组
NSArray *arr4=[[NSArrayalloc]initWithObjects:@"one",@"two",@"three", nil];

//用一个数组去创建另外一个数组
NSArray *arr5=[NSArray arrayWithArray:arr4];


3. NSArray的常见用法
- (NSUInteger) count;——获取集合元素的个数
- (id)objectAtIndex:(NSUInteger)index;——获取index位置的元素
- (BOOL)containsObject:(id)anObject;——判断数组是否包含anObject这个对象,包含返回YES,不包含返回NO
- (id) firstObject;——返回数组中第一个元素
- (id) lastObject;——返回数组中最后一个元素
- (NSUInteger)indexOfObject:(id)anObject;——返回anObject这个元素在数组中的位置,如果找不到,返回-1
- (NSUInteger)indexOfObject:(id)anObject inRange:(NSRange)range;——在range范围内查找anObject元素在数组中的位置

4. NSArra读写文件
NSArray数据写到文件中
- (BOOL)writeToFile:(NSString *)path atomically:(BOOL)flag
比如把数组arr2中的数据写到arr.txt文件中
[arr2 writeToFile:@"users/xxxxx/arr.txt" atomically:YES];
NSArray读取文件
+ (NSArray *)arrayWithContentsOfFile:(NSString *)aPath;
比如读取arr.txt文件中的内容到数组中
NSArray *readArr=[NSArrayarrayWithContentsOfFile:@"users/xxxxx/arr.txt"];
5. 把数组元素链接成字符串
- (NSString *)componentsJoinedByString:(NSString *)separator;
比如把arr3中的元素用“-”链接成一个字符串
NSString *str=[arr3 componentsJoinedByString:@"-"];
6. 把有规律的字符串分割成一个数组
- (NSArray *)componentsSeparatedByString:(NSString *)separator;
比如把字符串str1分割成数组
NSString *str1=@"120-150-110-180";
NSArray *arr=[str1 componentsSeparatedByString:@"-"];
7. NSArray的遍历方法

NSArray *arr=@[@"one",@"two",@"three",@"four",@"five"];
//1. NSArray的下标遍历
for (int i=0; i<arr.count; i++) {
NSLog(@"%@",arr[i]);
}

//2. 快速枚举法,for循环的增强使用
for (NSString *str in arr) {
NSLog(@"%@",str);
}

//3. 使用block方式进行访问
[arr enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
NSLog(@"%lu,%@",idx,obj);
}];
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: