一:数组介绍:
1、定义:
简单地说就是元素的集合。OC中数组可以保存不同类型的对象,但只能保存对象。不能保存基本类型,若保存基本数据类型
(int double float ....),需要转换成对象(NSString NSNumber...)保存。数组的最后一个元素为是nil,表示结束。
2、分类:
可变数组 NSMutableArray
不可变数组 NSArray
(可不可变是指个数能不能改变,数组元素的值还是可以改变的)
二:使用:
1、初始化:
NSArray *array = [[NSArray alloc] initWithObjects:@"one",@"two",@"three",@"four", nil];
NSArray *array2 = [NSArray arrayWithObjects:@"1",@"2",@"3", nil];
// 不同类型的元素
NSArray *array3 = [NSArray arrayWithObjects:@"1",array,@"2",array2,@"3", nil];
// 通过一个数组,来创建一个数组!
NSArray *array4 = [[NSArray alloc] initWithArray:array];
NSArray *array5 = [NSArray arrayWithArray:array];
2、增:
NSArray 不能增加元素
NSMutableArray *array = [[NSMutableArray alloc] initWithObjects:@"one",@"two", nil];
[array addObject:@"three"];
// 在下标为1的地方,插入一个元素
[array insertObject:@"five" atIndex:1];
3、删
NSArray 不能删除元素
[array removeObjectAtIndex:0];
[array removeObject:@"one"];
[array removeLastObject];
[array removeAllObjects];
4、查
//根据下标
[array objectAtIndex:0];
//是否包含
[array containsObject:@"1"];
//个数
[array count];
//最后一个元素
[array lastObject];
5、改
[array replaceObjectAtIndex:2 withObject:@"one"];
[array exchangeObjectAtIndex:0 withObjectAtIndex:1];
6、遍历
//方法1 for循环
for (int i = 0; array.count; i++) {
NSLog(@"%@",[array objectAtIndex:i]);
}
//方法2 枚举
for (<#type *object#> in <#collection#>) {
<#statements#>
}
例如:
for (NSString *str in array) {
NSLog(@"%@",str);
}
//方法3 枚举器
NSEnumerator *enumerator = [array objectEnumerator];
id obj = nil;
while(obj = [enumerator nextObject]){
NSLog(@"obj=%@",obj);
}
// 创建一个倒序的枚举器
enumerator = [array reverseObjectEnumerator];
while (obj = [enumerator nextObject]) {
NSLog(@"obj = %@",obj);
}
//方法4 block
[array enumeratorObjectsUsingBlock:
^(id obj, NSUInteger index, BOOL *stop){
NSLog(@"%i-%@",index,obj);
//若终断循环
*stop = YES;
}];
7、比较
[array isEqualToArray:array1];
来源:oschina
链接:https://my.oschina.net/u/1451688/blog/646872