黑马程序员技术交流社区
标题:
OC学习笔记之NSArray and NSMutableArray
[打印本页]
作者:
zhuhoulin
时间:
2015-7-26 21:38
标题:
OC学习笔记之NSArray and NSMutableArray
NSArray//OC中提供数组的一个类
1.NSArray基础
(1)开发中尽量使用NSArray,因为C中的数据只能存放一种类型的数据,不能很方便的动态添加元素、不能很方便的
动态删除数组元素
(2)只能存放对象,并且下标有序
不能存储非OC对象,如int\float\double\char\enum\struct等
它是不可变的,一旦初始化完毕,它里面的内容是固定的,不可修删改
2.NSArray的创建方式
(1)NSArray的类方法创建
3.NSArray的常见用法
(1)-(NSRUInteger)count方法-----获取当前数组的长度
(2)-(id)objectAtIndex:(NSUInteger)index------获取index位置的元素
(3)-(BOOL)containsObject:(id)anObject--------数组中是否包含某个对象
(4)-(id)lastObject-------返回最后一个元素
(5)-(id)firstObject-------返回第一个元素
(6)-(NSUInteger)indexofbject:(id)anobject-----查找anobject元素在数组中的位置,如果找不到,返回-1(NSNotFound)
(7)-(NSUInteger)indexofobject:(id)anobject inRange:(NSRange)range;----在range范围内查找anobject元素在数组中的位置
4.NSArray的遍历方法
(1)NSArrya下标遍历
NSArray *arr = @[@"one",@"two",@"three",@"four"];
for(int i=0;i<arr.count;i++){
NSLog(@"->%@",arr[i]);
}
(2)快速枚举法(for循环的增强方式forin)
for(NSString * int arr){
NSLog(@"->%@",arr);
}
(3)使用block方法进行访问
[arr enumerate3objectsUsingBlock:^(id obj,NSUInteger idx,BOOL *stop){
if(idx ==2){
*stop = YES;
}
else{
NSLog(@"idx = %ld,obj = %@",idx,obj);
}
}];
5.NSSArray和字符串之间的关系
1.把数组元素连成一个字符串
NSArray *arr = @[@1,@2,@3,@4];
NSString *str = [arr componentsJoineByString:@"-"];
2.把字符串分成若干个元素,并依次存放进入数组中
NSString *str2 = @"400-800-1258";
NSArray *arr2 = [str2 compontsSepatatedBystring:@"-"]
str2 = @"400-800-1258#400-800-1257";
NSArray *arr3 = [str2 componentsSeparatedByString:@"#"];
NSArry *arr4 = [arr3 fistObject] componentsSeparatedByString:@"--"]
NSArry *arr5 = [arr3 lastObject] componentsSeparatedByString:@"--"]
NSMutableArray及基本使用
1.基本使用
NSArray初始化之后,内容永远固定,NSMutableArray可以改变
(1)创建
//创建空数组
NSMutableArray *arr1 = [NSMutableArray array];
//创建的时候初始化一个元素
NSMutableArray *arr2 = [NSMutableArray arrayWithObject:@"one"];
//创建的时候,初始化多个元素
NSMutableArray *arr3 = [NSMutableArray arrayWithObject:@"one",@3];
//创建一个数组,并且指定其长度(该长度随着数组元素的增加是可以改变的)
NSMutableArray *arr3 = [NSMutableArray arrayWithCapacity:5];
(2)添加元素
[arr1 addObject:@"fengjie"];
还可以添加整个数组
-(void)addObjectsFormArdObray:(NSArray *)array;
在指定位置插入元素
[arr1 inserObject:@"zbz" atIndex:0];
(3)删除元素
根据对象删除
[arr1 removeObject:@"zbz"];
根据位置删除
[arr1 removeObjectAtIdex:1];
全部删除
[arr1 removeAllObjects];
(4)修改元素
[arr3 replaceObjectAtIndex:1 withOvject:@"four"];
(5)查找元素
BOOL isSearch = [arr3 containObject:@"four"];
(6)元素交换
[arr3 exchangeObjectAtIndex:0 withObjectAtIndex:4];
2.错误的使用
NSMutableArray *array =@ [@"bob",@"steve",@"john"];//后面是给不可变量赋值的。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2