您的位置:首页 > 其它

OC中的数组操作2

2015-12-16 15:07 204 查看
#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {

@autoreleasepool {

//可变数组 NSMutableArray ,它是NSArray的子类

//初始化方法

//初始化一个空的可变数组

NSMutableArray *mArray1=[NSMutableArray array];

//创建一个里面只有一个元素的可变数组

NSMutableArray *mArray2=[NSMutableArray arrayWithObject:@"1"];

//创建一个里面有多个元素的可变数组

NSMutableArray *mArray3=[NSMutableArray arrayWithObjects:@"1",@"2",@"3",@"4", nil];

//根据另一个数组产生新的数组

NSMutableArray *mArray4=[NSMutableArray arrayWithArray:mArray3];

//可变数组独有的初始化方法

//初始化数组的时候大小是10

NSMutableArray *mArray5=[NSMutableArray arrayWithCapacity:10];

//数组的容量也只是数组最终大小的一个参考,容量数值之所以存在,是为了cocoa能够对代码进行一些优化,cocoa即不会对对象预写入数组,也不会用读容量来限制数组的大小。

//读取本地文件的数组

NSMutableArray *mArray6=[NSMutableArray arrayWithContentsOfFile:@""];

//从网络读取数组

//NSMutableArray *mArray7=[NSMutableArray arrayWithContentsOfURL:@" "];

//增加

//在数组的末尾增加一个元素

[mArray3 addObject:@"5"];

//在数组指定位置插入元素

[mArray3 insertObject:@"Rick" atIndex:2];

//替换:将数组指定位置上的元素替换成客户想要的元素

//交换:将数组指定的位置的元素跟想要换的元素交换位置

//删除

//删除指定元素

[mArray3 removeObject:@"1"];

//删除指定位置上的原素

[mArray3 removeObjectAtIndex:0];

//删除数组中最后的一个元素

[mArray3 removeLastObject];

//删除数组中所有的元素

[mArray3 removeLastObject];

for (int i=0; i<mArray3.count; i++) {

NSLog(@"%@",mArray3);

}

//

//数组的遍历

NSMutableArray *marray=[NSMutableArray arrayWithObjects:@"1",@"2",@"3",@"4",@"5", nil];

//快速枚举

for (NSString *element in marray) {

NSLog(@"%@",element);

}

//使用系统提供的枚举类型

NSEnumerator *enumerator=[marray objectEnumerator];

//得到一个枚举器以后我们就可以通过 while 循环来遍历数组元素,而不用管索引问题,每次循环可以通过枚举器的 nextObject 方法得到下一个数组里的对象,直到 nextObject 为 nil 时,循环结束,这也是为什么数组元素中不要出现 nil 的原因

id ele;

while (ele=[enumerator nextObject]) {

//使用枚举器遍历集合

NSLog(@"%@",ele);

}

/*

注意:

我们使用枚举器遍历数组元素期间,不要添加或者删除数组元素,否则运行的时候程序会奔溃

因为通过objectEnumerator的枚举器的时候数组元素的个数已经记录再枚举器里了,在遍历的时候,如果添加或者删除数组元素的话,数组元素的个数就前后不一致而出现异常

*/

}

return 0;

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