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

------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);
        }];
        


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值