zoukankan      html  css  js  c++  java
  • 黑马程序员--Foundation框架之--NSDirctionary类以及它的子类NSMutableDirctionary类

     

    ------IOS培训期待与您交流! -------

     

    今天来看一下Foundation框架中的NSDirctionary 类,NSMutableDirctionary类,OC中叫字典,字典是无序的,这个和NSArray不一样。

    一、NSDirctionary类 

    1、创建方法

    // 字典的创建  
    NSArray *array1 = [NSArray arrayWithObjects:@"zhangsan",@"zhangfei", nil nil];  
    NSArray *array2 = [NSArray arrayWithObjects:@"lisi",@"liping", nil nil];  
      
    //第一个元素:key:@"zhang" value:array1  
    //第二个元素:key:@"li"  value:array2  
    NSDictionary *dict = [[NSDictionary alloc] initWithObjectsAndKeys:array1,@"zhang",array2,@"li", nil nil];  
    NSLog(@"%@",dict); 

    我们可以看到,NSDirctionary类的创建是基于NSArray的,这里需要注意结尾是:nil

    2、添加元素 

    // 存放一个元素  
    NSDictionary *dict2 = [NSDictionary dictionaryWithObject:array1 forKey:@"zhang"];  

    3、获取所有元素的key

    // 获取所有的key  
    NSArray *allKeys = [dict allKeys];  

    4、获取所有元素的value

    // 获取所有的value  
    NSArray *allValues = [dict allValues];  

    5、通过key获取value

    // 通过key获取value  
    NSArray *values = [dict objectForKey:@"zhang"];  

    6、NSDirctionary的快速创建方式和访问方式

    // 优化的语法  
    NSDictionary *dict3 = @{@"zhangsan":array1,@"lisi":array2};  
    NSLog(@"%@",dict3);  
          
    NSArray *array4 = dict3[@"zhang"];   

    二、NSMutableDirctionary类

    之前的NSDirctionary类是不可变字典,同样的OC中也有对应的可变字典:NSMutableDirctionary

    1、创建可变字典

    // 创建一个可变字典,大小为3  
    NSMutableDictionary *md1 = [[NSMutableDictionary alloc] initWithCapacity:3];  
    NSArray *array1 = [[NSArray alloc] initWithObjects:@"zhangsan",@"lis", nil nil];  

    创建一个可变字典,可以指定其大小,当然当容量满的之后,他回自动扩容

    2、添加元素

    // 添加元素  
    [md1 setObject:array1 forKey:@"zhang"];  
          
    NSMutableDictionary *md2 = [[NSMutableDictionary alloc] initWithCapacity:3];  
    [md2 addEntriesFromDictionary:md1];  

    3、删除元素

    // 删除元素  
    [md1 removeObjectForKey:@"zhang"];//以key删除  
    [md1 removeAllObjects];//删除所有元素  
    [md1 removeObjectsForKeys:array1];//以value删除 

    4、遍历字典

    // 循环遍历字典  
    // 方式一:快速遍历  
    for (NSString *key in md1) {  
        NSArray *values = [md1 objectForKey:key];  
        for(NSString *v in values){  
            NSLog(@"%@",v);  
        }  
    }  
          
    //方式二:普通遍历  
    NSArray *allKey = [md1 allKeys];  
    for(int i=0;i<allKey.count;i++){  
        NSArray *value = [md1 objectForKey:allKey[i]];  
    } 

    这一篇文章就介绍了OC中的NSDirctionary类和NSMutableDirctionary类。

  • 相关阅读:
    10、ERP设计之系统基础管理(BS)- 平台化设计
    SendMessage发送自定义消息及消息响应
    【iOS开发】 常遇到的Crash和Bug处理
    UVA 11100 The Trip, 2007 贪心(输出比较奇葩)
    Android_多媒体_SoundPool声音池使用
    Django之逆向解析url
    Oracle中四种循环(GOTO、For、While、Loop)
    Android监控程序本身被卸载方法汇总
    Cocos2dx项目启程一 之 封装属于我的精灵类
    Android-->发送短信页面实现(短信发送以及群发和从电话本中选择联系人)-----------》2
  • 原文地址:https://www.cnblogs.com/waterfox/p/4388814.html
Copyright © 2011-2022 走看看