字典和选择器

来源:互联网 发布:步态分析数据 编辑:程序博客网 时间:2024/06/08 14:33

【说明】

1.OC中的字典是一个特殊的类,用来快速查找OC对象【只有OC有】 【C++内叫做map】
2.字典里面的对象是以【键值对】的形式出现的(一个key对应一个值)
key是【键】 【值】是value
3.字典里面的对象不能是奇数
4.字典里面的键可以是任何的一个对象,值也一样
5.字典里面的键值对是没有一个顺序的

【不可变字典】【NSDictionary】

//利用键值对创建字典    //前面是值,后面是键    NSDictionary * dict = [[NSDictionary alloc]initWithObjectsAndKeys:@"one",@"1",@"Two",@"2",@"Three",@"3", nil];    NSLog(@"%@",dict);    //initWithDictionary利用另外的一个字典创建一个新的字典    NSDictionary * dict2 = [[NSDictionary alloc]initWithDictionary:dict];    NSLog(@"%@",dict2);    //利用数组,也就是键的集合以及集的集合创建一个字典    //键是唯一的,不可重复    //值可以相同    //键和值必须一一对应    NSArray * keys = @[@"1",@"2",@"3",@"4",@"5"];    NSArray * values = @[@"one",@"two",@"three",@"three",@"Five"];    NSDictionary * dict3 = [[NSDictionary alloc]initWithObjects:values forKeys:keys];     NSLog(@"%@",dict3);    NSArray * values2 = [dict3 allValues];    NSLog(@"obj=%@",values2);    //枚举键【键是唯一的】    //快速枚举法,遍历字典是字典中唯一的键(key)    for (id obj in dict3){        NSLog(@"%@",[dict3 valueForKey:obj]);        //NSLog(@"%@",obj);【这样的话打印的是键】    }

【可变字典】【NSMutableDictionary】

是继承NSDictionary的,他可以使用所有的NSDictionary方法,在方法中,如果要传入一个’NSDictionary同样可以传入NSMutableDictionary

【选择器】SEL

1.选择器是一个变量的类型
2.函数指针存放的是C语言的函数的首地址,我们可以通过函数指针调用该函数
3.选择器存放的是成员方法或者说是消息