一、 NSArray(不可变数组)
OC数组,以面向对象的形式操作数组,什么对象都能放进数组里面,注意不能存放非OC对象
1、数组的创建
(1)这个数组永远是空数组
1、数组的创建
(1)这个数组永远是空数组
NSArray *array = [NSArray array];
(2)单个元素
NSArray *array2 = [NSArray arrayWithObject:@"jack"];
(3)多个元素
// nil是数组元素结束的标记
NSArray *array3 = [NSArray arrayWithObjects:@"jim", @"rose", nil];
(4) 根据编译器特性,快速创建NSArray对象
NSArray *array4 = @[@"jack", @"rose", @"jim"];
2、查看数组个数
NSLog(@"%ld", array3.count);
3、访问数组元素
(1)对象方法
NSLog(@"%@", [array3 objectAtIndex:0]);
(2)编译器特性,array3[1]会自东转成上面的形式
NSLog(@"%@", array3[1]);
4、数组遍历
(1)快速数组遍历方法
把数组array4中的元素一个一个赋值给obj,每赋值一次就调用一次循环体
for (id obj in array4)
{
// 找出obj的在数组中的位置
NSUInteger i = [array4 indexOfObject:obj];
NSLog(@"%ld - %@", i, obj);
}
(2)使用block遍历数组
// 每遍历到一个元素,就会调用一次block
// 并且当前元素和索引位置当做参数传给block
[array4 enumerateObjectsUsingBlock:
^(id obj, NSUInteger idx, BOOL *stop)
{
NSLog(@"%ld - %@", idx, obj);
if (1 == idx)
{
// 停止遍历
*stop = YES;
}
}];
二、NSMutableArray(可变数组)1、@interface NSMutableArray : NSArray
继承NSArray的属性和方法,新建数组
NSMutableArray *array = [NSMutableArray arrayWithObjects:@"jim", @"rose", nil];
2、添加元素
// 添加元素
[array addObject:@"jack"];
// 错误写法
// [array addObject:nil];
3、删除元素
// 删除全部元素
// [array removeAllObjects];
// 删除指定字符串
// [array removeObject:@"jack"];
// 删除指定索引位置的字符串
[array removeObjectAtIndex:1];