NSArray和NSMutableArray基本用法
2017-05-08 本文已影响85人
噬尾蛇
NSArray基本用法:
//初始化数组
NSArray *array1=[NSArray array];
NSArray *array2=[NSArray alloc]initWithObjects:@"three",@"four", nil];
//创建数组
NSArray *array3=[NSArray arrayWithObjects:@"Hello",@"World",@"Objective",@"C",nil];
NSArray *array4=[NSArray arrayWithArray:array1];
NSArray常用方法:
//1)获取数组的长度 count获取数组的元素的个数
NSLog(@"%ld",arr3.count);
//2)根据下标,获取下标对应的对象
NSLog(@"%@",[arr3 objectAtIndex:3]);
//3)返回元素的下标
NSUInteger loc = [arr3 indexOfObject:@"World"];
NSLog(@"%ld",loc);
//4)数组中是否包含了某个元素
if([arr3 containsObject:@"four"]){
NSLog(@"包含此元素");
}else{
NSLog(@"不包含");
}
NSArray遍历:
//定义一个数组
NSArray *arr = @[@"one",@"two",@"three",@"four"];
//1) 普通的方式,通过下标访问
for(int i=0;i<arr,i++){
NSLog(@"%@",arr[i]);
}
//2) 快速枚举法 for循环的增强形式
for (NSString * str in arr) {
NSLog(@"---> %@",str);
}
NSArray与字符串:
- 把数组拼接成为字符串
//定义一个数组
NSArray *arr = @[@1,@2,@3,@4];
//1)需求: 把数组中的元素用 "-" 连接起来
// [数组 componentsJoinedByString @"分隔符"];
//在NSString中也可以用这个方法连接字符串,只需把arr替换成str,拆分字符串同理
// 1-2-3-4
NSString *str = [arr componentsJoinedByString:@"-"];
NSLog(@"str = %@",str);
- 把字符串拆分为数组
//2) 给一个字符串,分割成一个数组
// 400-800-12580 //取得 400 12580 800
NSString *str2 = @"400-800-12580";
NSArray *arr2 = [str2 componentsSeparatedByString:@"-"];
NSLog(@"%@",[arr2 firstObject]);
NSLog(@"%@",[arr2 lastObject]);
NSLog(@"%@",arr2[1]);
NSMutableArray基本方法:
NSMutableArray除了继承了NSArray基本的方法,还增加了以下的指定初始化函数
-(instancetype)initWithCapacity:(NSUInteger)numItems;
- addObject
//尾部追加一个元素
-(void)addObject:(id)anObject;
//尾部追加一个数组
-(void)addObjectsFromArray:(NSArray *)otherArray;
- insertObject
//在指定索引处插入一个元素,原来的元素后移
// index取值范围=[0, count],index=count时相当于addObject
-(void)insertObject:(id)anObject atIndex:(NSUInteger)index;
//在指定索引集合处插入一个数组元素,相当于批次insertObject:atIndex:
-(void)insertObjects:(NSArray *)objects atIndexes:(NSIndexSet*)indexes;
- exchangeObject/replaceObject
//交换对应索引位置的元素(索引必须有效)
-(void)exchangeObjectAtIndex:(NSUInteger)idx1 withObjectAtIndex:(NSUInteger)idx2;
//替换对应索引位置的元素(索引必须有效)
-(void)replaceObjectAtIndex:(NSUInteger)index withObject:(id)anObject;
//替换对应索引集合位置的元素,相当于批次replaceObjectAtIndex: withObject:
-(void)replaceObjectsAtIndexes:(NSIndexSet *)indexes withObjects:(NSArray*)objects;
//等效于replaceObjectAtIndex,支持中括号下标格式(array[index])赋值替换。
// index取值范围=[0, count],index=count时相当于addObject
-(void)setObject:(id)obj atIndexedSubscript:(NSUInteger)idx;
//等效于先removeAllObjects后addObjectsFromArray
-(void)setArray:(NSArray *)otherArray;
- removeObject
-(void)removeLastObject;
//删除对应索引位置/范围的元素(索引/范围必须有效)
-(void)removeObjectAtIndex:(NSUInteger)index;
-(void)removeObjectsAtIndexes:(NSIndexSet *)indexes;
-(void)removeObjectsInRange:(NSRange)range;
//有则删除
-(void)removeObject:(id)anObject;
-(void)removeObject:(id)anObject inRange:(NSRange)range;
-(void)removeObjectsInArray:(NSArray *)otherArray;
-(void)removeAllObjects;