美文网首页Objective-C基础
NSDictionary和NSMutableDictionary

NSDictionary和NSMutableDictionary

作者: 噬尾蛇 | 来源:发表于2017-05-10 10:19 被阅读110次

NSDictionary初始化

//1.创建空的字典
NSDictionary *dict=[[NSDictionary alloc]init];
//或者 NSDictionary *dict=[NSDictionary dictionary];

//2.
NSDictionary *dict1=[[NSDictionary alloc]initWithObjectsAndKeys:@"value1",@"key1",@"value2",@"key2",nil];
//或者 NSDictionary *dict1=[NSDictionary dictionaryWithObjectsAndKeys:@"value1",@"key1",@"value2",@"key2",nil];

//3.读取文件数据
// 获取Documents目录路径  
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);  
NSString *docDir = [paths objectAtIndex:0]; 
NSDictionary *dict2=[[NSDictionary alloc]initWithContentsOfFile:docDir];
//或者 NSDictionary *dict1=[NSDictionary dictionaryWithContentsOfFile:docDir];

常用方法

//获取字典数量
NSInteger count=[dict1 count];
//通过key获取对应的value对象
NSObject *valueObj=[dict1 objectForKey:@"key"];
//将字典的key转换成枚举对象,用于遍历
NSEnumerator *enumerator=[dict1 keyEnumerator];
//获取所有值的集合
NSArray *keys=[dict1 allKeys];
//获取所有值的集合
NSArray *values=[dict1 allValues];

可变数组NSMutableDictionary

//初始化一个空的可变字典
NSMutableDictionary *mutableDic1 = [NSMutableDictionary dictionary];
//或者 NSMutableDictionary *mutableDic1=[[NSMutableDictionary alloc]init];

NSMutableDictionary *mutableDic2 = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"v1",@"key1",@"v2",@"key2",nil];
NSDictionary *mutableDic3 = [NSDictionary dictionaryWithObject:@"v3" forKey:@"key3"];

//向字典2对象中添加整个字典对象3
[mutableDic2 addEntriesFromDictionary:mutableDic3];

//向字典2对象中最佳一个新的key3和value3
[mutableDic2 setValue:@"value3" forKey:@"key3"];

//将空字典1对象内容设置与字典2对象相同
[mutableDic1 setDictionary:mutableDic2];

//将字典中key1对应的值删除
[mutableDic1 removeObjectForKey@"key1"];

//根据指定的数组(key)移除字典1的内容
NSArray *array = [NSArray arrayWithObjects:@"key1", nil];
[mutableDic2 removeObjectsForKeys:array];

//移除字典所有对象
[mutableDic1 removeAllObjects];

遍历字典

    //快速枚举
    for (id key in dic){
         id obj = [dic objectForKey:key];
         NSLog(@"%@", obj);
    }

    //一般枚举
    NSArray *keys = [dic allKeys];
    int length = [keys count];
    for (int i = 0; i < length;i++){
         id key = [keys objectAtIndex:i];
         id obj = [dic objectForKey:key];
         NSLog(@"%@", obj);
    }

    //通过枚举类型枚举
    NSEnumerator *enumerator = [dic keyEnumerator];
    id key = [enumerator nextObject];
    while (key) {
            id obj = [dic objectForKey:key];
            NSLog(@"%@", obj);
            key = [enumerator nextObject];
    }

相关文章

网友评论

    本文标题:NSDictionary和NSMutableDictionary

    本文链接:https://www.haomeiwen.com/subject/nspwtxtx.html