Foundation框架--字典( NSDictionary NSMutableDictionary )

基础知识

1.字典不允许相同的key,但允许有相同的value。

2,字典是无序的,字典不能排序。

3.字典里的内容是成对存在的,不会出现单数。

4.快速创建的方式只适合不可变字典。

不可变字典

 

#import <Foundation/Foundation.h>

 

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

    @autoreleasepool {

        /***************************必需要掌握的知识*********************************/

        NSDictionary  *d1=[NSDictionarydictionaryWithObject:@"value"forKey:@"key"];//创建包含一个键值对的字典

        NSDictionary  *d2=[NSDictionarydictionaryWithObjectsAndKeys:@"a",@"1",@"b",@"2",@"c",@"3", nil];//创建包含多个键值对的字典,前面是值,后面是键

        //快速创建字典

        NSDictionary  *d3=@{

                            @"1":@"a",

                            @"2":@"b"

                            };

        NSString *s=[d2 objectForKey:@"1"];//根据字典中key的值取出value

        NSString *s1=d2[@"1"];//快速取值的方法

         /***************************必需要掌握的知识*********************************/

        

        

        /****************************了解部分***************************************/

        NSArray *arr=[d2 allKeys];   //把字典里全部键放在数组里

        for (NSString *k in arr) {      //遍历数组找到相应的key

            NSLog(@"%@=%@",k,d2[k]);

        }

        

        NSArray *arr1=[d2 allValues];

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

            NSLog(@"%@==%@",arr[i],arr1[i]);

        }

        

        //先获取字典中key的枚举器,然后遍历该枚举器,获取key对应的值

        NSEnumerator *e = [d2 keyEnumerator];

        id obj;              //能够接收任何类型数据的对象

        while (obj = [e nextObject]) {

            NSLog(@"%@ = %@",obj,d2[obj]);

        }

        /****************************了解部分***************************************/

    }

    return 0;

}

原文地址:https://www.cnblogs.com/lcl15/p/4918509.html