Objective-C 7 NSArray常用方法
发布日期:2021-05-10 11:31:40 浏览次数:22 分类:精选文章

本文共 4091 字,大约阅读时间需要 13 分钟。

Objective-c中的使用数组的类是NSArray和NSMutableArray。一个是不可变数组,另一个是可变数组。

我们先看一下不可变数组NSArray。

NSArray

NSArray保存的对象可以是不同的对象。但

NSArray类有两个限制:

1 它只能存储Objective-C对象,不能存储基础数据类型(int、float、BOOL等)。

2 它不能存粗nil(对象的零值和NULL)。

初始化

	//ios 6 快捷初始化        NSArray *ary = @[@"top",@"jungle",@"mid",@"adc",@"support"];        NSLog(@"ary = %@",ary);        //实例方法初始化        NSArray *ary1 = [[NSArray alloc] initWithObjects:@"top",@"adc",@"apc",@"jungle", nil];        NSLog(@"ary1 = %@",ary1);        NSArray *ary2 = [[NSArray alloc] initWithArray:ary1];        NSLog(@"ary2 = %@",ary2);        //类方法初始化        NSArray *ary3 = [NSArray arrayWithObject:@23];        NSLog(@"ary3 = %@",ary3);        NSArray *ary4 = [NSArray arrayWithObjects:@"top",@"adc",@"apc",@"jungle", nil];        NSLog(@"ary4 = %@",ary4);        NSArray *ary5 = [NSArray arrayWithArray:ary2];        NSLog(@"ary5 = %@",ary5);
输出结果:

2016-01-09 14:28:09.001 命令行工程[13776:1114249] ary = (    top,    jungle,    mid,    adc,    support)2016-01-09 14:28:09.002 命令行工程[13776:1114249] ary1 = (    top,    adc,    apc,    jungle)2016-01-09 14:28:09.002 命令行工程[13776:1114249] ary2 = (    top,    adc,    apc,    jungle)2016-01-09 14:28:09.002 命令行工程[13776:1114249] ary3 = (    23)2016-01-09 14:28:09.002 命令行工程[13776:1114249] ary4 = (    top,    adc,    apc,    jungle)2016-01-09 14:28:09.002 命令行工程[13776:1114249] ary5 = (    top,    adc,    apc,    jungle)

数组的一些属性

因为这几个都是它的属性,所以既可以用点语法,也可以用属性点get方法。

NSArray *ary = @[@"top",@"jungle",@"mid",@"adc",@"support"];//ary.count == [ary count];NSLog(@"数组长度 = %lu",ary.count);//ary.firstObject == [ary firstObject];NSLog(@"第一个对象 = %@",ary.firstObject);//ary.lastObject == [ary lastObject];NSLog(@"最后一个对象 = %@",ary.lastObject);//ary.sortedArrayHint == [ary sortedArrayHint];NSLog(@"NSData 的对象 = %@",ary.sortedArrayHint);//ary.description == [ary description];NSLog(@"description方法 = %@",ary.description);
输出:

2016-01-09 14:46:47.843 命令行工程[13938:1120615] 数组长度 = 52016-01-09 14:46:47.845 命令行工程[13938:1120615] 第一个对象 = top2016-01-09 14:46:47.845 命令行工程[13938:1120615] 最后一个对象 = support2016-01-09 14:46:47.845 命令行工程[13938:1120615] NSData 的对象 = <066c711f 4bb3d7a3 25b7311f 83b1c41e 24219268>2016-01-09 14:46:47.845 命令行工程[13938:1120615] description方法 = (    top,    jungle,    mid,    adc,    support)

数组派生出新数组

NSArray *ary = @[@"top",@"jungle"];//在最后添加一个OC对象,形成一个新的数组。NSArray *ary1 = [ary arrayByAddingObject:@"lol"];NSLog(@"ary1 = %@",ary1);//在最后添加多个对象,形成一个新的数组。NSArray *ary2 = [ary arrayByAddingObjectsFromArray:ary1];NSLog(@"ary2 = %@",ary2);NSLog(@"ary2的长度 = %lu",ary2.count);//截取数组一部分创建新的数组NSArray *ary3 = [ary2 subarrayWithRange:NSMakeRange(1, 3)];NSLog(@"ary3 = %@",ary3);//ary并没有改变,只是通过它派生出新的数组。NSLog(@"ary = %@",ary);
输出:

2016-01-09 15:00:19.145 命令行工程[14046:1124762] ary1 = (    top,    jungle,    lol)2016-01-09 15:00:19.146 命令行工程[14046:1124762] ary2 = (    top,    jungle,    top,    jungle,    lol)2016-01-09 15:00:19.146 命令行工程[14046:1124762] ary2的长度 = 52016-01-09 15:00:19.146 命令行工程[14046:1124762] ary3 = (    jungle,    top,    jungle)2016-01-09 15:00:19.146 命令行工程[14046:1124762] ary = (    top,    jungle)

其他方法

NSArray *ary = @[@"top",@"jungle",@"mid",@"adc",@"support"];//访问某个指定位置的对象NSString *str = ary[2]; //也可以使用 [ary objectAtIndex:2]NSLog(@"str = %@",str);//对象在数组中的位置unsigned long ind = [ary indexOfObject:@"adc"];NSLog(@"adc在数组中的下标 = %lu",ind);//如果没存在这个对象 会输出。。。NSLog(@"adddd在数组中的下标 = %lu",[ary indexOfObject:@"ad"]);//是否包含某个对象 0 false  1 trueBOOL co = [ary containsObject:@"support"];NSLog(@"ary是否包含字符串support %i",co);//数组连接参数形成字符串NSString *str1 = [ary componentsJoinedByString:@""];NSLog(@"str1 = %@",str1);NSString *str2 = [ary componentsJoinedByString:@"!"];NSLog(@"str2 = %@",str2);
输出:

2016-01-09 15:23:20.569 命令行工程[14265:1134215] str = mid2016-01-09 15:23:20.570 命令行工程[14265:1134215] adc在数组中的下标 = 32016-01-09 15:23:20.570 命令行工程[14265:1134215] adddd在数组中的下标 = 92233720368547758072016-01-09 15:23:20.570 命令行工程[14265:1134215] ary是否包含字符串support 12016-01-09 15:23:20.571 命令行工程[14265:1134215] str1 = topjunglemidadcsupport2016-01-09 15:23:20.571 命令行工程[14265:1134215] str2 = top!jungle!mid!adc!support
未完待续。。。

上一篇:Objective-C 8 NSNumber的常用方法
下一篇:Objective-C 6 NSMutableString的常用方法

发表评论

最新留言

做的很好,不错不错
[***.243.131.199]2025年04月05日 08时39分30秒