NSDictionary 常用方法学习

//
//  NSDictionaryStu.m
//  OC基础学习
//
//  Created by 麦子 on 15/4/13.
//  Copyright (c) 2015年 麦子. All rights reserved.
//

#import "NSDictionaryStu.h"

@implementation NSDictionaryStu


-(void) dictionaryStu
{

    NSLog(@"NSDictionary 学习");
    
    /**
     
      这个类就相当于java中的map类, 键值对的形式存在, key 和  value,  字典对象中的键和值不可以为空(nil), 如果需要的话需要使用NSNull,这种包装类。
     
       它也有可变字典类,子类。  NSMutableDictionary,   数组用nil来进行结束
     */

    
    
    /*************** 初始化**************/
    
    NSDictionary  *dictionary = [NSDictionary dictionaryWithObject:@"value-1" forKey:@"key-1"]; // 单个创建
    NSLog(@"dictionary-1----%@",dictionary);
    
    
    NSDictionary *dictionaryArray = [NSDictionary dictionaryWithObjectsAndKeys:@"val-1",@"key-1",@"val-2",@"key-2", nil];//创建多个
    NSLog(@"dictionary-2-----%@",dictionaryArray);
    
    NSDictionary *dictionaryCopy = [NSDictionary dictionaryWithDictionary:dictionaryArray];// copy 原来的数组
    NSLog(@"dictionary-3----%@",dictionaryCopy);
    
    
    
    // 获取字典数量
    int number = [dictionaryArray count];
    NSLog(@"---%d",number);
    
    // 通过key获取val
    NSString  *val = [dictionaryArray objectForKey:@"key-1"];
    NSLog(@"val---%@",val);
    
    
    // 获取所有的key和val
    NSArray  *arrayKeys = [dictionaryArray allKeys];
    NSArray  *arrayVals = [dictionaryArray allValues];
    NSLog(@"key---%@----val----%@",arrayKeys,arrayVals);
    
    
    
    /************** NSMutableDictionary 可变字典 *******/
    NSMutableDictionary *mutableDictionary = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"obj-1",@"key-1",@"obj-2",@"key-2",@"obj-3",@"key-3",@"obj-4",@"key-4", nil];
    NSDictionary *addDictionary = [NSDictionary dictionaryWithObject:@"obj-3" forKey:@"key-3"];
    [mutableDictionary addEntriesFromDictionary:addDictionary]; // 添加一个字典,到原来的字典中,这个方法是返回void
    NSLog(@"----%@",mutableDictionary);
    
    [mutableDictionary setValue:@"maizi-today" forKey:@"key-3"];//重新设置值
     NSLog(@"----%@",mutableDictionary);
    
    // 放入另一个字典中
    NSMutableDictionary  *dic = [NSMutableDictionary dictionary ]; // 空字典
    [dic setDictionary:mutableDictionary];
    NSLog(@"--********%@",dic);
    
    
     // 删除
    [mutableDictionary removeObjectForKey:@"key-1"];
    NSLog(@"---%@",mutableDictionary);
    
    // 删除一组
    NSArray *array = [NSArray arrayWithObjects:@"key-3",@"key-4", nil];
    [mutableDictionary removeObjectsForKeys:array];
    NSLog(@"---%@",mutableDictionary);
    
    // 删除所有
    [mutableDictionary removeAllObjects];
    NSLog(@"---%@",mutableDictionary);
    
    
    
    // 循环字典
    NSLog(@"%@",dic);
    
    for (int index = 0; index < [dic count]; index++) {
        
        id key = [[dic allKeys] objectAtIndex:index];
        id obj = [dic objectForKey:key];
        
        NSLog(@"---key--%@---val----%@---",key,obj);
        
    }
    
    
    for (id key in dic) {
        
        id obj = [dic objectForKey:key];
        
        NSLog(@"----**%@****----%@",key,obj);
        
    }
    
    
    
    id key;
    NSEnumerator *enmum = [dic keyEnumerator];
    while (key = [enmum nextObject]) {
        
        id object = [dic objectForKey:key];
        NSLog(@"*******----%@",object);
    };
}

@end
<span style="font-family: Arial, Helvetica, sans-serif;">运行结果如下:</span>
<span style="font-family: Arial, Helvetica, sans-serif;"></span><pre name="code" class="plain">2015-04-15 23:54:28.428 OC基础学习[1179:75792] NSDictionary 学习
2015-04-15 23:54:28.429 OC基础学习[1179:75792] dictionary-1----{
    "key-1" = "value-1";
}
2015-04-15 23:54:28.429 OC基础学习[1179:75792] dictionary-2-----{
    "key-1" = "val-1";
    "key-2" = "val-2";
}
2015-04-15 23:54:28.429 OC基础学习[1179:75792] dictionary-3----{
    "key-1" = "val-1";
    "key-2" = "val-2";
}
2015-04-15 23:54:28.429 OC基础学习[1179:75792] ---2
2015-04-15 23:54:28.429 OC基础学习[1179:75792] val---val-1
2015-04-15 23:54:28.430 OC基础学习[1179:75792] key---(
    "key-1",
    "key-2"
)----val----(
    "val-1",
    "val-2"
)
2015-04-15 23:54:28.430 OC基础学习[1179:75792] ----{
    "key-1" = "obj-1";
    "key-2" = "obj-2";
    "key-3" = "obj-3";
    "key-4" = "obj-4";
}
2015-04-15 23:54:28.430 OC基础学习[1179:75792] ----{
    "key-1" = "obj-1";
    "key-2" = "obj-2";
    "key-3" = "maizi-today";
    "key-4" = "obj-4";
}
2015-04-15 23:54:28.430 OC基础学习[1179:75792] --********{
    "key-1" = "obj-1";
    "key-2" = "obj-2";
    "key-3" = "maizi-today";
    "key-4" = "obj-4";
}
2015-04-15 23:54:28.448 OC基础学习[1179:75792] ---{
    "key-2" = "obj-2";
    "key-3" = "maizi-today";
    "key-4" = "obj-4";
}
2015-04-15 23:54:28.449 OC基础学习[1179:75792] ---{
    "key-2" = "obj-2";
}
2015-04-15 23:54:28.449 OC基础学习[1179:75792] ---{
}
2015-04-15 23:54:28.449 OC基础学习[1179:75792] {
    "key-1" = "obj-1";
    "key-2" = "obj-2";
    "key-3" = "maizi-today";
    "key-4" = "obj-4";
}
2015-04-15 23:54:28.449 OC基础学习[1179:75792] ---key--key-2---val----obj-2---
2015-04-15 23:54:28.450 OC基础学习[1179:75792] ---key--key-1---val----obj-1---
2015-04-15 23:54:28.450 OC基础学习[1179:75792] ---key--key-4---val----obj-4---
2015-04-15 23:54:28.450 OC基础学习[1179:75792] ---key--key-3---val----maizi-today---
2015-04-15 23:54:28.450 OC基础学习[1179:75792] ----**key-2****----obj-2
2015-04-15 23:54:28.450 OC基础学习[1179:75792] ----**key-1****----obj-1
2015-04-15 23:54:28.451 OC基础学习[1179:75792] ----**key-4****----obj-4
2015-04-15 23:54:28.451 OC基础学习[1179:75792] ----**key-3****----maizi-today
2015-04-15 23:54:28.470 OC基础学习[1179:75792] *******----obj-2
2015-04-15 23:54:28.470 OC基础学习[1179:75792] *******----obj-1
2015-04-15 23:54:28.470 OC基础学习[1179:75792] *******----obj-4
2015-04-15 23:54:28.470 OC基础学习[1179:75792] *******----maizi-today
Program ended with exit code: 0


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值