---NSArray
NSArray:OC数组,它不能存放空值(nil或者0)只能存放OC对象、不能存放非OC对象类型,比如int、struct、enum等
1.NSArray的基本操作
1>最简单数组对象的建立
NSArray *array = [NSArray array];// 这个array永远是空数组
2>一般数组的建立
传入单个元素:NSArray *array2 = [NSArray arrayWithObject:@"jack"];
传入多个元素:NSArray *array3 = [NSArray arrayWithObjects:@"jack",
@"rose",person, nil]; // nil是数组元素结束的标记,在多个元素的情况下如果不加入nil这
个元素会报错,并且非最后一个元素不能是nil,否则会提前结束
3>快速创建一个NSArray对象
NSArray *array4 = @[@"jack", @"rose", @"4324324"];
4>输出NSArray的元素个数
NSLog(@"%ld", array3.count);
5>NSArray中元素的访问
NSLog(@"%@", [array3 objectAtIndex:1]);
NSLog(@"%@", array3[1]); // 如同C中的数组访问
2.数组的遍历
1>for (int i = 0; i<array.count; i++)
{
NSLog(@"%@", array[i]);
}
2> int i = 0;
for (id obj in array)//id obj代表着数组中的每一个元素
{
NSUInteger i = [array indexOfObject:obj];// 找出obj元素在数组中的位置
NSLog(@"%ld - %@", i, obj);
i++;
//下面4行代码可以设置停止遍历的条件
//if (i==1)
//{
// break;
//}
}
3>
// 每遍历到一个元素,就会调用一次block,并且当前元素和索引位置当做参数传给block
[array enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop)
{
NSLog(@"%ld - %@", idx, obj);
if (idx == 0) // 可以设置停止遍历的条件
{// 停止遍历
*stop= YES;
}
}];
block遍历的原理:
void ^(myblock)(id, NSUInteger, BOOL *) =
^(id obj, NSUInteger idx, BOOL *stop)
{
NSLog(&#