zoukankan      html  css  js  c++  java
  • Objective-C语法之NSDictionary和NSMutableDictionary

    1、不可变词典NSDictionary的主要用法:

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

    [dictionary count]: 得到词典的键值对数量。
    [dictionary keyEnumerator]: 将词典的所有key储存在NSEnumerator中,类似于Java语言中的迭代器
    [dictionary objectEnumerator]: 将词典的所有value储存在NSEnumerator中
    [dictionary objectForKey:key]: 通过传入key对象可以拿到当前key对应储存的值。

    代码示例:

    复制代码
    int main(int argc, const char * argv[])
    {
        @autoreleasepool {
            NSDictionary *dictionary = [NSDictionary dictionaryWithObjectsAndKeys:@"25",@"age",@"张三",@"name",@"男",@"性别",nil];
            NSLog(@"%lu", [dictionary count]);
            NSEnumerator *enumeratorKey = [dictionary keyEnumerator];
            for (NSObject *object in enumeratorKey) {
                NSLog(@"key:%@", object);
            }
            
            NSEnumerator *enumeratorObject = [dictionary objectEnumerator];
            for (NSObject *object in enumeratorObject) {
                NSLog(@"value:%@", object);
            }
            NSLog(@"key name的值是:%@", [dictionary objectForKey:@"name"]);
            
        }
        return 0;
    }
    复制代码

    打印结果;

    2015-08-18 16:31:18.276 objectiveC[2965:403] 3
    2015-08-18 16:31:18.282 objectiveC[2965:403] key:age
    2015-08-18 16:31:18.282 objectiveC[2965:403] key:name
    2015-08-18 16:31:18.283 objectiveC[2965:403] key:性别
    2015-08-18 16:31:18.283 objectiveC[2965:403] value:25
    2015-08-18 16:31:18.284 objectiveC[2965:403] value:张三
    2015-08-18 16:31:18.284 objectiveC[2965:403] value:男
    2015-08-18 16:31:18.285 objectiveC[2965:403] key name的值是:张三

    2、可变的词典NSMutableDictionary。

    NSMutableDictionary是NSDictionary的子类,所以继承了NSDictionary的方法, 以上的代码对NSMutableDictionary来说完全可用。我们试试不一样的地方

    增删键值数据。

    [dictionary setObject: forKey:] :向可变的词典动态的添加数据 
    [dictionary removeAllObjects..] : 删除掉词典中的所有数据。
    [dictionary removeObjectForKey..] :删除掉词典中指定key的数据

    代码示例:

    复制代码
    int main(int argc, const char * argv[])
    {
        @autoreleasepool {
            NSMutableDictionary *dictionary = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"25",@"age",@"张三",@"name",@"男",@"性别",nil];
            [dictionary setObject:@"30名" forKey:@"名次"];
            
            NSLog(@"%lu", [dictionary count]);
            NSEnumerator *enumeratorKey = [dictionary keyEnumerator];
            for (NSObject *object in enumeratorKey) {
                NSLog(@"key:%@", object);
            }
            
            NSEnumerator *enumeratorObject = [dictionary objectEnumerator];
            for (NSObject *object in enumeratorObject) {
                NSLog(@"value:%@", object);
            }
            NSLog(@"key 名次的值是:%@", [dictionary objectForKey:@"名次"]);
            [dictionary removeObjectForKey:@"名词"];
            NSLog(@"%lu", [dictionary count]);
    
        }
        return 0;
    }
    复制代码

    打印结果:

    2015-08-18 16:37:07.037 objectiveC[3053:403] 4
    2015-08-18 16:37:07.042 objectiveC[3053:403] key:age
    2015-08-18 16:37:07.043 objectiveC[3053:403] key:性别
    2015-08-18 16:37:07.043 objectiveC[3053:403] key:name
    2015-08-18 16:37:07.044 objectiveC[3053:403] key:名次
    2015-08-18 16:37:07.044 objectiveC[3053:403] value:25
    2015-08-18 16:37:07.045 objectiveC[3053:403] value:男
    2015-08-18 16:37:07.045 objectiveC[3053:403] value:张三
    2015-08-18 16:37:07.046 objectiveC[3053:403] value:30名
    2015-08-18 16:37:07.046 objectiveC[3053:403] key 名次的值是:30名
     
  • 相关阅读:
    Training Deep Neural Networks
    RNN and LSTM saliency Predection Scene Label
    c++通过类名动态创建对象
    C++初级 入门笔记学习(一)
    机器学习日报
    工作常用工具使用手册
    转:python中对list去重的多种方法
    转:python list排序的两种方法及实例讲解
    转:python dict按照value 排序
    mysql计算时间差函数
  • 原文地址:https://www.cnblogs.com/wangliyuan/p/4740354.html
Copyright © 2011-2022 走看看