您的位置:首页 > 其它

OC菜鸟成长记-OC中的数组创建和操作

2015-08-18 14:02 423 查看
在OC中,数组分为两种:不可变数组(NSArray) 和 可变数组(NSMutableArray)。根据自己的认识,笔者在下面对OC中的数组进行一下总结。

首先是不可变数组(NSArray):

// NSArray
//初始化
NSArray *array =[[NSArray alloc]init];
NSArray *array1 = [NSArray arrayWithObjects:@"a",@"b",@"c", nil];
//新语法
NSArray *array2 =@[@"a",@"b",@"c"];

NSArray *array3 =[NSArray arrayWithArray:array1];

//操作
//历遍某一个元素
NSString *arrStr = [array1 objectAtIndex:0];
//历遍数组
for (int i=0; i<array1.count; i++) {
NSLog(@"%d:%@",i,[array1 objectAtIndex:i]);
}
//利用枚举器进行历遍
//先初始化一个枚举器
NSEnumerator *enumerator = [array1 objectEnumerator];
id obj;
while (obj =[enumerator nextObject]) {
NSLog(@"%@",obj);
}
//快速历遍
//id obj;
for (obj in array1) {
NSLog(@"%@",obj);
}

//添加元素
NSArray *array4 = [array3 arrayByAddingObjectsFromArray:array2];
NSArray *array5 = [array3 arrayByAddingObject:@"d"];
NSLog(@"array4 = %@,array5=%@",array4,array5);
运行结果如下:

oc_731_practise[17787:164553] 0:a
oc_731_practise[17787:164553] 1:b
oc_731_practise[17787:164553] 2:c
oc_731_practise[17787:164553] a
oc_731_practise[17787:164553] b
oc_731_practise[17787:164553] c
oc_731_practise[17787:164553] a
oc_731_practise[17787:164553] b
oc_731_practise[17787:164553] c
oc_731_practise[17787:164553] array4 = (
a,
b,
c,
a,
b,
c
),array5=(
a,
b,
c,
d
)


然后是可变数组(NSMutableArray):

// NSMutableArray

//初始化
NSMutableArray *marray1 =[NSMutableArray array];
marray1 =[NSMutableArray arrayWithArray:array1];

//插入元素
[marray1 insertObject:@"diao" atIndex:2];

//替换
[marray1 replaceObjectAtIndex:0 withObject:@"z"];

//交换
[marray1 exchangeObjectAtIndex:0 withObjectAtIndex:2];

//删除
[marray1 removeLastObject];//删除最后一个
[marray1 removeObject:@"z"];//删除指定元素
[marray1 removeAllObjects];//删除全部元素

//利用枚举器历遍
//初始化
NSEnumerator *enumerator1 =[marray1 objectEnumerator];
//使用while循环历遍
id obj1;
while (obj1 = [enumerator1 nextObject]) {
NSLog(@"%@",obj1);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息