A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始




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
是不可变的初始化之后内容就无法改变

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马