注意点:NSArray中不可以存放基本数据类型,只能存放类的实例,如果需要将基本类型、结构体放入到数组中的话。需要使用NSNumber/NSValue进行数据的封装再放入到NSArray中。并且不能再NSArray中存储nil
一、NSArray类
#import<Foundation/Foundation.h>
int main(int argc,const charchar & argv[]){
@autoreleasepool{
NSString * s1 = @"zhangsan";
NSString * s2 = @"lisi";
NSString * s3 = @"wangwu";
//0 -- 普通创建与访问
NSArray * array = @[s1, s2, s3]; //不能用在NSMutableArray。
NSString * arr = array[0];
//1 -- 对象法创建数组
NSArray * array1 = [NSArray alloc]initwithObjects:s1, s2, s3, nil];
//打印的时候会调用description方法,相当于 array1.description
NSLog(@"%@",array1);
//2 -- 类方法创建
array2 = [NSArray arraywithObject:s1, s2, s3 nil];
//3 -- 创建一个数组,将原数组中的数据拿出来放入到新的数组中
NSArray * array3 = [NSArray arraywithArray:array2];
//4 -- 访问数组中的数据,数组中存放的是对象的指针 -- objectAtIndex方法
NSString * str1 = [array3 objectAtIndex:0];
//5 -- 获取数组元素中的个数 -- count方法
NSUInteger count = [array1 count];
//6 -- 判断数组中是否包含某一个对象,判断的是指针对象值,不是对象中的值 -- containObject方法
BOOL iscontains = 【array3 containObject:@"zhangsan"];
//7-- 返回一个对象在数组中的下标值 -- indexOfObject方法
NSUInteger index = [array1 indexOfObject:@"zhangsan"];
if(index == NSFound){
//没找到
}else{
//找到
}
//8 -- 连接字符串 -- componentsJoinsByString方法
//注意:数组中存放的必须是字符串
NSString * content = [array1 componentsJoinsByString:@","];
//9 -- 访问最后一个元素 -- lastObject方法
NSString * last = [array1 lastObject];
//10 -- 增加元素到数组 -- arrayByaddingObject方法
NSArray * array3 = [array1 arrayByaddingObject :@"zhangliu"];
//11 -- 数组遍历 --第一种
for(int i=0; i< [array1 count]; i++){
NSString * str = [array1 objectAtIndex:i];
NSLog(@"%@", str);
}
//12 -- 数组遍历 -- 第二种
for(NSString * str in array1){
NSLog(@"%@", str);
}
}
return 0;
}
二、NSMutableArray类
NSMutableArray是可变的,所以可以进行增删改查操作
NSMutableArray集成MSArray类,有NSArray所有方法
#import<Foundation/Foundation.h>
int main(int argc, const char * argv[]){
NSString * s1 = @"zhangsan";
NSString * s2 = @"lisi";
NSString * s3 = @"wangwu";
//1 -- 对象创建
NSMutableArray * mArray1 = [NSMutableArray alloc]initwithObject: s1, s2, s3, nil];
//2 -- 开辟空间方式
NSMutableArray * mArray2 = [NSMutableArray alloc]initwithCapacity:5];
//3 -- 类方法创建
NSMutableArray * mArray3 = [NSMutableArray arrayWithCapacity:5];
//4 -- 增加元素 -- add方法
[mArray addObject:str1];
[mArray addObject:str2];
//5 -- 把数组元素添加到另一个数组中 -- addObjectsFromArray方法
[mArray2 addObjectsFromArray:mArray1];
//6 -- 把整个数组加入到另一个数组中成为二维数组 -- addObject方法
[mArray2 addObject:mArray1];
//7 -- 插入数组 -- insertObject方法
[mArray2 insertObject:@"def" atIndex:0];
//8 -- 替换元素 -- replaceObjectAtIndex方法
[mArray2 replaceObjectAtIndexl:0 withObject:@"aaa"];
//9 -- 互换两个元素位置 -- exchangeOjbectAtIndex方法
//10 -- 删除指定位置元素 -- removeObjectAtIndex方法
[mArray2 removeObjectAtIndex:0];
//11 -- 删除最后一个元素 -- removeLastObject方法
[mArray2 removeLastObject];
//12 -- 删除指定的对象 -- removeObject方法
[mArray2 removeObject:@"this"];
//13 -- 删除所有的对象/清空列表 -- removeAllObjects方法
[mArray2 removeAllObjects];
}