您的位置:首页 > 职场人生

03-黑马程序员-NSArray、NSMutableArray

2014-06-03 22:26 429 查看
NSArray :不可变数组

 
NSMutableArray : 可变数组

1.  NSArray的创建

NSArray *array2 = [NSArray arrayWithObject:@"jack"];

// nil是数组元素结束的标记
NSArray *array3 = [NSArray arrayWithObjects:@"jack", @"rose", nil];
// [array2 count];

//NSArray *array4 = [NSArray arrayWithObjects:@"jack", @"rose", @"4324324", nil];

// 快速创建一个NSArray对象
NSArray *array4 = @[@"jack", @"rose", @"4324324"];


2.  NSArray的元素个数

NSLog(@"%ld", array3.count);


 3.  NSArray中元素的访问

NSLog(@"%@", [array3 objectAtIndex:1]);

//array3[1];
NSLog(@"%@", array3[0]);


4.  数组遍历

第一种:

Person *p = [[Person alloc] init];

NSArray *array = @[p, @"rose", @"jack"];

for (int i = 0; i<array.count; i++)
{
NSLog(@"%@", array[i]);
}


   第二种:
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;
}
}


  第三种: 
[array enumerateObjectsUsingBlock:

// 每遍历到一个元素,就会调用一次block
// 并且当前元素和索引位置当做参数传给block
^(id obj, NSUInteger idx, BOOL *stop)
{
NSLog(@"%ld - %@", idx, obj);
if (idx == 0)
{
// 停止遍历
*stop = YES;
}

}];


5.可变数组的基本用法

NSMutableArray *array = [NSMutableArray arrayWithObjects:@"rose", @"jim", nil];

// 添加元素
[array addObject:[[Person alloc] init]];

[array addObject:@"jack"];

// 删除元素
//[array removeAllObjects];
// 删除指定的对象
// [array removeObject:@"jack"];
[array removeObjectAtIndex:0];

// 错误写法
// [array addObject:nil];

NSLog(@"%@", array);

NSLog(@"%ld", array.count);

6.  注意:

     @[] 只创建不可变数组NSArray

     错误写法

NSMutableArray *array = @[@"jack", @"rose"];

[array addObject:@"jim"];


     OC数组不能存放nil值

    OC数组只能存放OC对象、不能存放非OC对象类型,比如int、struct、enum等

    

     这个array永远是空数组

/NSArray *array = [NSArray array];
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: