------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
一、NSArray的基本介绍
1、NSArray是oc 中的数组类,开发过程中建议尽量使用NSArray替代C语言中的数组。
C语言中的数组的弊端:
1)只能存放一种类型的数据;
2)不能方便的动态添加数组元素、不能很方便的动态删除数组元素(长度固定)。
2、NSArray使用注意事项。
1)只能存放OC对子昂,并且是有序的 ;
2)不能存储非OC对象,比如intfloat double char enum struct等;
3)它是不可变的,一旦初始化完毕后,它里面的内容就永远时候固定的,不能删除里面的元素,也不能再往里面添加元素。
二、NSArray创建方式
#import
int main(int argc, const char * argv[]) {
@autoreleasepool {
//创建一个空数组
NSArray *arry1=[NSArray array];
NSLog(@"arry1=%@",arry1);
//创建数组,只有”–“素
NSArray *arry2 = [NSArray arrayWithObject:@"a"];
NSLog(@"arry2=%@",arry2);
//创建数组,多个元素,常见方法
NSArray *arry3 = [NSArray arrayWithObjects:@"2",@1, nil];
NSLog(@"arry3=%@",arry3);
/*调用对象方法,创建数组,NSArray中不呢个存储nil,NSArray认为nil是数组的结束(nil是数组元素结束的标记)。nil就是0,0是基本数据类型不能存放到NASArray中。*/
NSArray *arry4=[[NSArray alloc] initWithObjects:@"1",@"2",[NSNull null], nil];
NSLog(@"arry4=%@",arry4);
//用一个数组可以创建另一个数组
NSArray *arry5 = [NSArray arrayWithArray:arry3];
NSLog(@"arry5=%@",arry5);
}
return 0;
}
三、常见用法
#import
int main(int argc, const char * argv[]) {
@autoreleasepool {
NSArray *arry3 = [NSArray arrayWithObjects:@"2",@1, @"langya",nil];
//获取数组长度
NSLog(@"arry3长度为:%ld",arry3.count);
//根据下表获取相应对象
NSLog(@"%@",[arry3 objectAtIndex:2]);
//返回元素得到下标
NSUInteger loc = [arry3 indexOfObject:@"langya"];
NSLog(@"%ld",loc);
//数组中是否包含了某个元素
if([arry3 containsObject:@"2"]){
NSLog(@"包含");
}
else{
NSLog(@"不包含");
}
//用简化的方式,来定义和“问数组
NSArray *arry = @[@"ee",@"rr",@"gg"];
NSLog(@"%@",arry);
//用简化的方式访问数组
NSString *str = arry[2];
NSLog(@"%@",str);
}
return 0;
}
四、遍历方法
#import
int main(int argc, const char * argv[]) {
@autoreleasepool {
NSArray *arr = @[@"one",@"tow",@"three",@"four"];
//1)普通方式,通过下标
for(int i=0;i
#import
int main(int argc, const char * argv[]) {
@autoreleasepool {
//写文件
NSArray *arry = [NSArray arrayWithObjects:@"one",@"tow",@"three",@"four", nil];
BOOL arrwrite = [arry writeToFile:@"//Users/hongjitong/Desktop/arry.plist" atomically:YES];
if(arrwrite){
NSLog(@"写入成功");
}
//读文件
NSArray *reaarry = [NSArray arrayWithContentsOfFile:@"//Users/hongjitong/Desktop/arry.plist"];
NSLog(@"%@",reaarry);
}
return 0;
}
六、NSArray与字符串
#import
int main(int argc, const char * argv[]) {
@autoreleasepool {
NSArray *arry = @[@1,@2,@3,@4,@5];
//1)把数组中的元素用“-”链接起来1-2-3-4-5
NSString *str = [arry componentsJoinedByString:@"-"];
NSLog(@"%@",str);
//2)给一个字符串,分割成数组400-800-8007
NSString *str1 = @"400-800-8007";
NSArray *arry2 = [str1 componentsSeparatedByString:@"-"];
NSLog(@"%@",[arry2 firstObject]);
NSLog(@"%@",arry2 [1]);
NSLog(@"%@",[arry2 lastObject]);
//如果是400-800-8007#500-600-12570
//先分开为400-800-8007和500-600-12570
NSString *str3 = @"400-800-8007#500-600-12570";
NSArray *arry3 = [str3 componentsSeparatedByString:@"#"];
NSLog(@"%@",arry3);
//继续分割各各元素400-800-8007和500-600-12570
NSArray *arry31 = [arry3[0] componentsSeparatedByString:@"-"];
NSArray *arry32 = [arry3[1] componentsSeparatedByString:@"-"];
//打印
NSLog(@"%@,%@",arry31,arry32);
}
return 0;
}