OC中的数组类
只能存放OC对象,并且是有序的。
不能存放非OC对象
他是不可变的,一旦初始化完毕后,它里面的内容就永远是固定的不能删除不能添加
NSArray的创建方式
+(instancetype)array;
+(instancetype)arrayWithObject:(id)anObject;
+(instancetype)arrayWithObjects:(id)anObject,...;
+(instancetype)arrayWithArray:(NSArray *)array;
+(instancetype)arrayWithOfFile:(NSString *)path;//读取一个ml文件
+(instancetype)arrayWithOfURL:(NSURL *)url;//读取一个xml文件
NSArray*arr3=[NSArray arryWithObjects:@"one",@"two",@1,nil];nil表示数组赋值结束
NSArray*arr3=[[NSArray alloc] initWithObjects:@"one",[NSNull NULL],@"two",@1,nil];调用对象方法创建数组
[NSNull NULL]输出显示为空而@""显示""
NSArray的常见用法
-(NSUInteger)count;获取集合元素个数
-(id)objectAtIndex:(NSUInteger)index;获取index位置的元素
-(BOOL)containsObject:(id)anObject;是否包含某一个元素
-(id)lastObject;返回最后一个元素
-(id)firstObject;返回第一个元素
-(NSUInteger)indexOfObject:(id)anObject;查找anObject元素在数组中的位置如果找不到返回-1NSNotFound
-(NSUInteger)indexOfObject:(id)anObject inRange:(NSRange)range;
在range范围内查找anObject元素在数组中的位置
str=arr[1];
数组使用注意
NSArray直接使用NSLog()作为字符串输出时是小括号括起来的形式
NSArray终不能存储nil,因为NSArray认为nil是数组的结束
NSArray的遍历
1.普通
2.快速枚举法
for(NSString *str in arr){}
3.使用block的方式,进行访问
[arr enumerateObjectsUsingBlock:^(id obj,NSUInteger idx,BOOL *stop){
if(idx==2){
*stop=YES;
}
else{
输出
}
}];
数组元素 下标是否停止
//YES 停止
//NO 不会停止
NSArray读写文件
NSArray数据写入到文件中
if[arr writeToFile:@"绝对地址的文件名/Users/apple/Desktop/arr.plist"atomically:YES]){NSLog(@"写入成功");}
NSArray与字符串
把数组元素链接成字符串
-(NSString *)componentsJoinedByString:(NSString *)separator;
这是NSArray的方法,用separator作拼接数组元素拼接成一个字符串
将字符串分割
-(NSArray *)componentsseparatedByString:(NSString *)separator;
NSMutableArray介绍
是可变的
NSMutableArray *arr=[NSMutableArray array];
NSMutableArray *arr2=[[NSMutableArray alloc] initWithCapacity:5];指定数组的长度
NSMutableArray *arr=[NSMutableArray arrayWithObjects:@"1",@"2",@nil];
NSMutableArray *arr3=[[NSMutableArray alloc] initWithObjects:@"1",@"2",@nil];
[arr1 addObject:@"fengjie"];添加元素 地址不变
[arr1 insertObject:@"zbz" atIndex:0];插入元素到什么位置
删除元素
[arr1 removeObject:@"zbz"];
根据位置删除
[arr1 removeObjectAtIndex:1];
删除全部
[arr1 removeAllObjects];
修改元素
[arr3 replaceObjectAtIndex:1 withObject:@"sdf"];
arr3[1]=@"five";
查找元素
[arr3 containsObject:@"for"];返回YES找到NO没找到
交换元素
[arr3 exchangeObjectAtIndex:0 withObjectAtIndex:4];可以交换数组元素
NSMutableArray错误用法
不能用@[@"",@"",@""];不可变数组去声明可变
NSDictionary
key value
是不可变的初始化之后内容就无法改变
|
|