NSArray不可变数组
1.用来存放对象(不能存放非OC对象类型,比如int,strutct,enum等)
2.初始化大小是决定的
3.初始化时以nil结束标志
4.NSArray存入的对象类型可以是不同的。
初始化方式
NSArray *array = [NSArray arrayWithObjects:@"1",@"2", nil];
NSLog(@"%@",array[0]);
NSArray *array2 = @[@"1",@"2",@"3"];
NSLog(@"%@",array2[0]);
遍历,(这里有foreach语法,这个语法源自C#,然后java在1.5的版本中也加入的该方法)
NSArray *array2 = @[@"A",@"B",@"C"];
for(int i = 0; i < [array2 count];i++){
NSLog(@"%@",[array2 objectAtIndex:i]);
}
每遍历一个元素,就会调用一次block,并且当前元素(obj)和索引(idx)当做参数
NSArray *array2 = @[@"A",@"B",@"C"];
[array2 enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
NSLog(@"%ld %@",idx,obj);
}];
foreach方法
for(NSString *str in array2){
NSLog(@"%@",str);
}
NSMutableArray可变数组
1.和NSArray一样不能放入基本类型,只能放对象
2. 提供增加对象,和删除对象的操作
NSMutableArray *array = [NSMutableArray arrayWithObjects:@"aaa",@"bbb",@"ccc", nil];
[array addObject:@"ddd"];
[array removeObject:@"ccc"];
//[array removeAllObjects];
[array enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
NSLog(@"%@",obj);
}];