Narray
OC数组---只能存放OC对象
OC数组不能存放nil值
OC数组只能存放OC对象、不能存放非OC对象类型,比如int、struct、enum等
这个array永远是空数组
NSArray *array = [NSArray array];
1、NSArray的创建
NSArray *array2 = [NSArray arrayWithObject:@"jack"];
nil是数组元素结束的标记
NSArray *array3 = [NSArray arrayWithObjects:@"jack", @"rose", nil];
数组元素的个数
[array2 count];
快速创建一个NSArray对象
NSArray *array4 = @[@"jack", @"rose", @"4324324"];
2、NSArray中元素的访问
NSLog(@"%@", [array3 objectAtIndex:1]);
数组的遍历
block遍历
[array enumerateObjectsUsingBlock:
^(id obj, NSUInteger idx, BOOL *stop)
{
NSLog(@"%ld - %@", idx, obj);
if (idx == 0)
{
// 停止遍历
*stop = YES;
}
}];
普通循环遍历,id obj代表着数组中的每一个元素
int i = 0;
for (id obj in array)
{
// 找出obj元素在数组中的位置
NSUInteger i = [array indexOfObject:obj];
NSLog(@"%ld - %@", i, obj);
i++;
if (i==1)
{
break;
}
}
NSSet
NSSet和NSArray的对比
1> 共同点
* 都是集合,都能存放多个OC对象
* 只能存放OC对象,不能存放非OC对象类型(基本数据类型:int、char、float等,结构体,枚举)
* 本身都不可变,都有一个可变的子类
2> 不同点
* NSArray有顺序,NSSet没有顺序
NSMutableSet *s = [NSMutableSet set];
添加元素
[s addObject:@"hack"];
删除元素
[s removeObject:@"ha"];