OC-047.NSDictionary字典

来源:互联网 发布:奢侈品女包 知乎 编辑:程序博客网 时间:2024/06/18 15:24

概念:字典是一个无序的集合,它使通过键值对的方式来存储数据的

key:键 

value:值

key是有要求  NSCopying才能成为字典key,一般情况都是使用字符串NSString作为字典的key

NSDictionary 不可变得字典,一经创建里面的元素就不可以改变了


代码介绍:

1.字典的创建和初始化

2.字典的一些方法

3.遍历字典

4.字典与文件 一般用.plist

#import <Foundation/Foundation.h>int main(int argc, const char * argv[]) {    @autoreleasepool {//******1.字典的创建        //1.1通过类方法 value,key...,nil 值键对应  ,中文支持不好 这里的基本数据类型需要包装@        NSDictionary *dic = [NSDictionary dictionaryWithObjectsAndKeys:@19,@"age",@"tom",@"name",@28,@"age",nil];        NSLog(@"%@",dic);//打印age=19 name = tom 说明只能有一对值和键        //1.2通过对象方法        NSDictionary *dic2 = [[NSDictionary alloc] initWithObjectsAndKeys:@10,@"age", nil];        NSLog(@"%@",dic2);        //1.3使用简便方式来创建字典 (常用,可读性好)        NSDictionary *dic3 = @{@"age":@10,@"name":@"jack"};        NSLog(@"%@",dic3);    //******2.字典的方法        //2.1取出某个键的值        NSString *name1 = [dic objectForKey:@"name"];        NSLog(@"%@",name1);//打印tom        //2.2通过简便方法来取值(常用)        NSNumber *num = dic[@"age"];        NSLog(@"%@",num);//打印19        //2.3取出字典中一共有几对值键        long count = dic.count;        NSLog(@"%zd",count);//打印2        //******3.遍历字典        //3.1使用数组的方式,取出所有的key,然后用增强for遍历        NSDictionary *dic4 = @{@"age":@28,@"name":@"龙叔叔",@"sex":@1};        NSArray *keys = [dic4 allKeys];        for (NSString *key in keys) {            NSLog(@"%@ = %@",key,dic4[key]);        }        //3.2直接用增强for遍历        for (NSNumber *key in dic4) {            NSLog(@"%@ = %@",key,dic4[key]);        }        //3.3使用枚举器        NSEnumerator *dicEnum = dic4.keyEnumerator;        NSString *key = nil;        while ((key = dicEnum.nextObject)) {            NSLog(@"%@ = %@",key,dic4[key]);        }        //3.4用block        [dic4 enumerateKeysAndObjectsUsingBlock:^(id  _Nonnull key, id  _Nonnull obj, BOOL * _Nonnull stop) {            NSLog(@"%@ = %@",key,obj);        }];            //3.5取出字典中所有的值        NSArray *values = dic4.allValues;        for (id value in values) {            NSLog(@"%@",value);        }        //******4.字典与文件        //4.1写入文件        NSString *path = @"/Users/mrlong/Desktop/测试.plist";//        NSDictionary *dic4 = @{@"age":@28,@"name":@"龙叔叔",@"sex":@1};        BOOL isOk = [dic4 writeToFile:path atomically:YES];        if (isOk) {            NSLog(@"写入成功");        }        //4.2读取文件        NSDictionary *dic5 = [NSDictionary dictionaryWithContentsOfFile:path];        NSLog(@"%@",dic5);    }    return 0;



0 0