陈斌彬的技术博客

Stay foolish,stay hungry

NSDictionary 使用小结

#import <Foundation/Foundation.h>  


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

    @autoreleasepool {  

        //创建字典  
        NSDictionary *dic1 = [NSDictionary dictionaryWithObject:@"value" forKey:@"key"];  
        NSLog(@"dic1 :%@", dic1);  


        //创建多个字典  
        NSDictionary *dic2 = [NSDictionary dictionaryWithObjectsAndKeys:  
                              @"value1", @"key1",  
                              @"value2", @"key2",  
                              @"value3", @"key3",  
                              @"value4", @"key4",  
                              nil];  
        NSLog(@"dic2 :%@", dic2);  


        //根据现有的字典创建字典  
        NSDictionary *dic3 = [NSDictionary dictionaryWithDictionary:dic2];  
        NSLog(@"dic3 :%@", dic3);  


        //根据key获取value  
        NSLog(@"key3 value :%@", [dic3 objectForKey:@"key3"]);  

        //获取字典数量  
        NSLog(@"dic count :%d", dic3.count);  

        //所有的键集合  
        NSArray *keys = [dic3 allKeys];  
        NSLog(@"keys :%@", keys);  

        //所有值集合  
        NSArray *values = [dic3 allValues];  
        NSLog(@"values :%@", values);  



        NSMutableDictionary *mutableDic = [[NSMutableDictionary alloc] initWithObjectsAndKeys:  
                                           @"mvalue1", @"mkey1",  
                                           @"mvalue2", @"mkey2", nil];  
        //添加现有的字典数据  
        [mutableDic addEntriesFromDictionary:dic3];  
        NSLog(@"mutableDic :%@",mutableDic);  

        //添加新的键值对象  
        [mutableDic setValue:@"set1" forKey:@"setKey1"];  
        NSLog(@"set value for key :%@",mutableDic);  

        //以新的字典数据覆盖旧的字典数据  
        [mutableDic setDictionary:dic2];  
        NSLog(@" set dictionary :%@",mutableDic);  

        //根据key删除value  
        [mutableDic removeObjectForKey:@"key1"];  
        NSLog(@"removeForkey :%@",mutableDic);  

        //快速遍历  
        for(id key in mutableDic) {  
            NSLog(@"key :%@  value :%@", key, [mutableDic objectForKey:key]);  
        }  

        //枚举遍历  
        NSEnumerator *enumerator = [mutableDic keyEnumerator];  
        id key = [enumerator nextObject];  
        while (key) {  
            NSLog(@"enumerator :%@", [mutableDic objectForKey:key]);  
            key = [enumerator nextObject];  
        }  


        //根据key数组删除元素  
        [mutableDic removeObjectsForKeys:keys];  
        NSLog(@"removeObjectsForKeys :%@",mutableDic);  

        [mutableDic removeAllObjects];  
        //删除所有元素  
        NSLog(@"remove all :%@", mutableDic);  
    }  
    return 0;  
}  

日志:

 dic1 :{  
    key = value;  
}  
 dic2 :{  
    key1 = value1;  
    key2 = value2;  
    key3 = value3;  
    key4 = value4;  
}  
 dic3 :{  
    key1 = value1;  
    key2 = value2;  
    key3 = value3;  
    key4 = value4;  
}  
 key3 value :value3  
 dic count :4  
 keys :(  
    key2,  
    key3,  
    key1,  
    key4  
)  
 values :(  
    value2,  
    value3,  
    value1,  
    value4  
)  
 mutableDic :{  
    key1 = value1;  
    key2 = value2;  
    key3 = value3;  
    key4 = value4;  
    mkey1 = mvalue1;  
    mkey2 = mvalue2;  
}  
 set value for key :{  
    key1 = value1;  
    key2 = value2;  
    key3 = value3;  
    key4 = value4;  
    mkey1 = mvalue1;  
    mkey2 = mvalue2;  
    setKey1 = set1;  
}  
  set dictionary :{  
    key1 = value1;  
    key2 = value2;  
    key3 = value3;  
    key4 = value4;  
}  
 removeForkey :{  
    key2 = value2;  
    key3 = value3;  
    key4 = value4;  
}  
 key :key4  value :value4  
 key :key2  value :value2  
 key :key3  value :value3  
 enumerator :value4  
 enumerator :value2  
 enumerator :value3  
 removeObjectsForKeys :{  
}  
 remove all :{  
}