这一节,我们说说NSArray和NSMutableArray这两个集合
1、NSArray是不可变数组,而NSMutableArray是可变数组
2、OC中有一个快捷创建Array集合的方法,@[@"xxx",@"ddd"];但是需要注意的是,这里产生的是NSArray,而不是NSMutableArray
3、NSArray的创建
NSArray *array = [NSArray arrayWithObject:@"jack"];
4、nil是数组元素结束标记
NSArray *array = [NSArray arrayWithObjects:@"jack",@"rose",nil];
5、NSArray的快速创建
NSArray *array = @[@"abc",@"123"];
6、访问元素
[array objectAtIndex:1];
//效果如同
array[0];
这个算作编译器特性
7、对于NSMutableArray还有如下的方法
添加元素:
[array addObject:@"abc"];
8、
[array removeObjectAtIndex:0];
[array removeObject:@"abc"];
[array removeAllObejcts];
9、注意点:这两种都不能存放nil
这两种只能存放OC对象,不能存放非OC对象类型
10、遍历
第一种,使用for循环,利用i作为角标,来读取
for(int i = 0;i<array.count;a++)
{
array[i];
}
第二种:利用增强for循环
for(xxx in xxx)
{
}
第三种:
[array enumerateObjectsUsingBlock:^(id obj,NSUInteger idx,BOOL *stop)]
{
}
排序数组对象
NSArray *unsortedStrings = @[@"gammaString",@"alphaString",@"betaString"];
NSArray *sortedStrings = [unsortedStrings sortedArrayUsingSelector:@selector(compare:)];
变异字符串
if([immutableArray count] > 0)
{
id string = immutableArray[0];
if([string isKindOfClass:[NSMutableString class]])
{
[string appendString:@" World!"];
}
}
替换某个位置的对象
[mutableArray replaceObjectAtIndex:0 withObject:@"epsilon"];