数组类,可存放OC对象,不可存放int float 的基本数据类型和CGRect这两种原始数据
数组中对象的顺序是以索引(index)标记的
数组分为可变数组和不可变数组;可变数组可进行增删改得操作,不可变数组不能进行增删该
不可变数组:
NSArray *array = [[NSArray alloc]initWithObjects:@"000",@"111",@"222", nil];//其所因分别为0,1,2
//获取数组长度
int arrayCount = [array count];
//根据索引取值
NSString *str = [array objectAtIndex:2];
//str 的值为 222
//遍历数组,取出数组中的所有元素
for (int a = 0; a<array.count; a ++) {
NSString *string = [array objectAtIndex:a ];
NSLog(@"---------%@--------",string);
}
//简单遍历方式
for (NSString *string2 in array) {
NSLog(@"-----forin形式遍历------%@",string2);
}
可变数组:
//初始数组长度的创建方法,但是添加object时如果超过了这个长度,数组长度会增加
NSMutableArray *MArry1 = [[NSMutableArray alloc]initWithCapacity:10];
//初始化变量的创建方法
NSMutableArray *MArry2 = [[NSMutableArray alloc]initWithObjects:@"000",@"111",@"222", nil];
//增加元素单个元素
[MArry1 addObject:@"333"];
[MArry2 addObject:@"444"];
//删除数组内所有对象
[MArry1 removeAllObjects];
//删除最后一个对象
[MArry2 removeLastObject];
//删除指定对象
[MArry2 removeObject:@"111"];
//根据索引删除对象
[MArry2 removeObjectAtIndex:0];
//在制定索引处插入对象
[MArry2 insertObject:@"555" atIndex:1];
//制定索引的对象替换
[MArry2 replaceObjectAtIndex:1 withObject:@"666"];
//根据索引交换两个对象的位置
[MArry2 exchangeObjectAtIndex:0 withObjectAtIndex:1];
//使用循环添加多个对象
for (int i = 0; i < 10; i ++) {
NSString *string = [NSString stringWithFormat:@"--%d--",i];
[MArry1 addObject:string];
}
//遍历操作与不可变数组相同
字典分为可变字典和不可变字典,区别:是否可以进行增删改操作
与数组相比,字典主要的特点是,字典根据自己添加的键(key)来查找值(value),而不是按系统定义的索引(index)
不可变字典
//创建字典
NSDictionary *dic = [[NSDictionary alloc]initWithObjectsAndKeys:@"value0",@"key0",@"value1",@"value1",@"value2",@"value2", nil];
//查询字典中键值对的个数
int count = [dic count];
//查询所有的键
NSArray *arrayForAllKeys = [dic allKeys];
//查询所有的值
NSArray *arrayForAllValues = [dic allValues];
//根据key查询对应的value
NSString *string = [dic objectForKey:@"key2"];
//循环遍历
for (int i = 0; i <arrayForAllKeys.count; i ++) {
//获取key
NSString *stringKey = [arrayForAllKeys objectAtIndex:i];
//获取key对应的Value
NSString *stringValue = [dic objectForKey:stringKey];
NSLog(@"-------%@",stringValue);
}
//数组中存放int float
int a = 1;
float b = 2.5;
NSNumber *aa = [NSNumber numberWithInt:a];
NSNumber *bb = [NSNumber numberWithFloat:b];
NSArray *array = [NSArray arrayWithObjects:aa,bb, nil];
//以加号方法的形式创建
NSDictionary *dic1 = [NSDictionary dictionaryWithObjectsAndKeys:@"value0",@"key0",@"value1",@"value1",@"value2",@"value2", nil];
可变字典
//创建可变字典
NSMutableDictionary *MDic = [NSMutableDictionary dictionary];
//可变字典也可以初始化键值对创建
NSMutableDictionary *MDic1 = [[NSMutableDictionary alloc]initWithObjectsAndKeys:@"value0",@"key0",@"value1",@"value1",@"value2",@"value2", nil];
//向字典中增加键值对时,若字典中该key不存在,则添加;若字典中该key已存在,则修改对应的value
[MDic setValue:@"value" forKey:@"key0"];//增加
[MDic1 setObject:@"value" forKey:@"key0"];//修改
//删除指定key对应的键值对
[MDic1 removeObjectForKey:@"key2"];
//删除所有的键值对
[MDic1 removeAllObjects];
//查询遍历操作同不可变字典
//使用NSLog输出时,字典使用{}包围内容,数组使用()包围内容