zoukankan      html  css  js  c++  java
  • objective-c 字典对象 (6)

    做过Java语言 或者 C语言 开发的朋友应该很清楚 关键字map 吧,它可以将数据以键值对儿的形式储存起来,取值的时候通过KEY就可以直接拿到对应的值,非常方便。在Objective-C语言中 词典对象就是做这个事情的,不过在同一个词典对象中可以保存多个不同类型的数据,不像Java只能保存声明的相同类型的数据,它的关键字为NSDictionaryNSMutableDictionary

    1.创建不可变词典

    [NSDictionary dictionaryWithObjectsAndKeys:..] : 使用键值对儿直接创建词典对象,结尾必需使用nil标志结束。

    [NSDictionary initWithObjectsAndKeys:..] :使用键值对儿初始化词典对象,结尾必需使用nil标志结束。

    [dictionary count]: 得到词典的长度单位。

    [dictionary keyEnumerator]: 将词典的所有KEY储存在NSEnumerator中,NSEnumerator很像Java语言 中的迭代器,使用快速枚举可以遍历词典中所有储存KEY值。

    [dictionary  objectEnumerator]: 将词典的所有value储存在NSEnumerator,用法和上面差不多可用来遍历KEY对应储存的Value值。

    [dictionary objectForKey:key]: 通过传入KEY对象可以拿到当前KEY对应储存的值。

     1   
     2     //创建不变字典,根据方法名字就可以看出来value-key
     3     
     4     NSDictionary *dictionary = [NSDictionary dictionaryWithObjectsAndKeys:@"雨松MOMO",@"name",@"15810463139",@"number", nil];
     5     
     6     //得到词典的数量
     7     int count = [dictionary count];
     8     NSLog(@"词典的数量为: %d",count);
     9     
    10     //得到词典中所有KEY值
    11     NSEnumerator * enumeratorKey = [dictionary keyEnumerator];
    12     
    13     //快速枚举遍历所有KEY的值
    14     for (NSObject *object in enumeratorKey) {
    15         NSLog(@"遍历KEY的值: %@",object);
    16     }
    17     
    18     //得到词典中所有Value值
    19     NSEnumerator * enumeratorValue = [dictionary objectEnumerator];
    20     
    21     //快速枚举遍历所有Value的值
    22     for (NSObject *object in enumeratorValue) {
    23         NSLog(@"遍历Value的值: %@",object);
    24     }
    25     
    26     //通过KEY找到value
    27     NSObject *object = [dictionary objectForKey:@"name"];
    28     
    29     if (object != nil) {
    30         NSLog(@"通过KEY找到的value是: %@",object);
    31     }

    输出:

    2013-12-26 15:32:36.284 helloworld_20131023_Map[1819:c07] 词典的数量为: 2

    2013-12-26 15:32:36.287 helloworld_20131023_Map[1819:c07] 遍历KEY的值: name

    2013-12-26 15:32:36.287 helloworld_20131023_Map[1819:c07] 遍历KEY的值: number

    2013-12-26 15:32:36.288 helloworld_20131023_Map[1819:c07] 遍历Value的值: 雨松MOMO

    2013-12-26 15:32:36.288 helloworld_20131023_Map[1819:c07] 遍历Value的值: 15810463139

    2013-12-26 15:32:36.289 helloworld_20131023_Map[1819:c07] 通过KEY找到的value: 雨松MOMO

     

    2.创建可变词典对象

    NSMutableDictionary NSDictionary的子类,所以继承了NSDictionary的方法。

    [NSMutableDictionary dictionaryWithCapacity:10] : 创建一个可变词典初始指定它的长度为10.,动态的添加数据如果超过10这个词典长度会自动增加,所以不用担心数组越界。

    [NSMutableDictionary initWithCapacity:10]  :只是初始化一个词典的长度为10

    [dictionary setObject:@"雨松MOMO" forKey:@"name"] :向可变的词典动态的添加数据 ,这里的keyname 值是雨松MOMO。如果词典中存在这个KEY的数据则直接替换这个KEY的值。

    [dictionary removeAllObjects..] : 删除掉词典中的所有数据。

    [dictionary removeObjectForKey..] :删除掉词典中指定KEY的数据 

    [dic allKeys]:得到词典对象的所有键

    [dic allValues]:得到词典对象所有键对应的值

     1   //创建词典对象,初始化长度为10
     2     NSMutableDictionary *dictionary1 = [NSMutableDictionary dictionaryWithCapacity:10];
     3     
     4     //向词典中动态添加数据
     5     [dictionary1 setObject:@"雨松MOMO" forKey:@"name"];
     6     
     7     [dictionary1 setObject:@"15810463139" forKey:@"number"];
     8     
     9     //通过KEY找到value
    10     NSObject *object1 = [dictionary1 objectForKey:@"number"];
    11     
    12    if (object1 != nil) {
    13         NSLog(@"通过KEY找到的value是: %@",object1);
    14     }
    15     

    2013-12-26 15:32:36.289 helloworld_20131023_Map[1819:c07] 通过KEY找到的value: 雨松MOMO

    2013-12-26 15:32:36.289 helloworld_20131023_Map[1819:c07] 通过KEY找到的value: 15810463139

  • 相关阅读:
    java web项目打包.war格式
    version 1.4.2-04 of the jvm is not suitable for thi
    Sugarcrm Email Integration
    sharepoint 2010 masterpage中必须的Content PlaceHolder
    微信开放平台
    Plan for caching and performance in SharePoint Server 2013
    使用自定义任务审批字段创建 SharePoint 顺序工作流
    Technical diagrams for SharePoint 2013
    To get TaskID's Integer ID value from the GUID in SharePoint workflow
    how to get sharepoint lookup value
  • 原文地址:https://www.cnblogs.com/aosting/p/3489526.html
Copyright © 2011-2022 走看看