文档章节

Object-C代码练习【集合_字典类型】

TomatosX
 TomatosX
发布于 2014/10/06 21:38
字数 459
阅读 5
收藏 0
//
//  main.m
//  集合_字典类型
//
//  Created by on 14-10-6.
//  Copyright (c) 2014年 apple. All rights reserved.
//

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
    @autoreleasepool {
///////////////////////////////////////////////不可变字典///////////////////////////////////////////////
        NSNumber *number1 = [NSNumber numberWithInteger:100];
        NSNumber *number2 = [NSNumber numberWithInteger:200];
//        初始化一个元素
        NSDictionary *dic1 = [NSDictionary dictionaryWithObject:number1 forKey:@"numberKey"];
        NSLog(@"%@", dic1);
//        初始化多个元素
        NSDictionary *dic2 = [NSDictionary dictionaryWithObjectsAndKeys:number1, @"number1", number2, @"number2", nil];
        NSLog(@"%@", dic2);
//        从已有的字典中创建字典
        NSDictionary *dic3 = [NSDictionary dictionaryWithDictionary:dic2];
        NSLog(@"%@", dic3);
//        遍历key的值方法一
        for(NSObject *obj in dic2) {
            NSLog(@"迭代key方法一:%@", obj);
        }
//        遍历key的值方法er
        NSEnumerator *enumKey = [dic2 keyEnumerator];
        for (NSString *key in enumKey) {
            NSLog(@"迭代key方法二:%@", key);
        }
        
//        遍历value方法一
        NSEnumerator *enumValue = [dic2 objectEnumerator];
        for (NSObject *obj in enumValue) {
            NSLog(@"迭代value方法一:%@", obj);
        }
        
        NSLog(@"根据key取得value:%@", [dic2 objectForKey:@"number1"]);
        
        NSLog(@"字典数量:%ld", [dic2 count]);
        
//        获取所有key的集合
        NSArray *keyArray = [dic2 allKeys];
        for (NSObject *obj in keyArray) {
            NSLog(@"迭代key方法三:%@", obj);
        }
        
//        获取所有value集合
        NSArray *valueArray = [dic2 allValues];
        NSEnumerator *valueEnum = [valueArray objectEnumerator];
        id tmp = [valueEnum nextObject];
        while (tmp) {
            NSLog(@"迭代value方法二:%@", tmp);
            tmp = [valueEnum nextObject];
        }
        
//        一般枚举
        NSArray *keys = [dic2 allKeys];
        int length = (int)[keys count];
        for (int i = 0; i < length; i++) {
            id key = [keys objectAtIndex:i];
            id obj = [dic2 objectForKey:key];
            NSLog(@"一般枚举:%@", obj);
        }
        
        
///////////////////////////////////////////////可变字典///////////////////////////////////////////////
        NSMutableDictionary *muDic1 = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"v1", @"key1", @"v2", @"key2", nil];
        NSMutableDictionary *muDic2 = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"v3", @"key3", nil];
//        向字典1中添加字典2
        [muDic1 addEntriesFromDictionary:muDic2];
        NSLog(@"%@", muDic1);
        
//        向字典2中追加新值
        [muDic2 setObject:@"v4" forKey:@"key4"];
        NSLog(@"%@", muDic2);
        
//        初始化一个新的可变字典
        NSMutableDictionary *muDic3 = [NSMutableDictionary dictionary];
        NSLog(@"%@", muDic3);
        
//        将空字典3数据对象设置为字典1相同
        [muDic3 setDictionary:muDic1];
        NSLog(@"%@", muDic3);
        
//        将字典3中key1对应的值删除
        [muDic3 removeObjectForKey:@"key3"];
        NSLog(@"%@", muDic3);
        
//        根据指定的数组(key)删除字典3中的内容
        NSArray *keysArray = [NSArray arrayWithObjects:@"key1", @"key2", nil];
        [muDic3 removeObjectsForKeys:keysArray];
        NSLog(@"%@", muDic3);
        
//        移除字典中的所有对象
        [muDic2 removeAllObjects];
        NSLog(@"%@", muDic2);
    }
    return 0;
}



© 著作权归作者所有

共有 人打赏支持
TomatosX
粉丝 22
博文 207
码字总数 119547
作品 0
成都
iOS工程师
私信 提问
Chapter~7 映射和集合类型

7-1 字典方法。哪个字典方法可以用来把两个字典合并到一起? 7-2 字典的键。我们知道字典的值可以是任意的Python对象,那字典的键又如何呢?请试着将除数字和字符串以外的其他不同类型的对象...

小一姐姐
2016/07/17
25
0
OC语言自学《十二》---- OC(Foundation框架部分知识总结)

NSRange 表示一个范围 主要用来操作字符串 CGPoint、NSPoint 通过设置x坐标和y坐标来设置某个点 IOS设备的x和y从左上角开始,y值往下面增加,x值往右面增加 CGSize、NSSize 表示一个矩形尺寸...

罗眯眯
2014/04/09
0
0
关东升的《从零开始学Swift》3月9日已经上架

大家一直期盼的《从零开始学Swift》于3月9日已经上架,它是关东升老师历时8个月的呕心沥血所编著,全书600多页,此本书基于Swift 2.x,通过大量案例全面介绍苹果平台的应用开发。全书共分5 部...

tony关东升
2018/06/26
0
0
关东升的《《从零开始学Swift》即将出版

大家好: 苹果2015WWDC大会发布了Swift2.0,它较之前的版本Swift1.x有很大的变化,所以我即将出版《从零开始学Swift》《从零开始学Swift》将在《Swift开发指南》第1版的基础上添加Swift2.0的...

智捷课堂
2015/08/17
0
0
通过实例模拟ASP.NET MVC的Model绑定的机制:集合+字典

在本系列的前面两篇文章(《简单类型+复杂类型》、《数组》)我们通过创建的实例程序模拟了ASP.NET MVC默认使用的DefaultModelBinder对简单类型、复杂类型以及数组对象的Model绑定。现在我们...

长平狐
2012/09/04
299
0

没有更多内容

加载失败,请刷新页面

加载更多

Django进阶 1.1 ORM基础—ORM 1.2.1 增删改查之查询 1.2.2 删改增 (1) 1.2.3 删改增 (2)

ORM基础 ORM是Django操作数据库的API,Django的作者将sql语句封装在里面供我们使用。 我们前面还提到过Django提供一个模拟数据库的工具,sqlite,供我们学习测试使用。 如果我们想使用mysql...

隐匿的蚂蚁
今天
1
0
Windows 上安装 Scala

在安装 Scala 之前需要先安装 Java 环境,具体安装的详细方法就不在这里描述了。 您可以自行搜索我们网站中的内容获得其他网站的帮助来获得如何安装 Java 环境的方法。 接下来,我们可以从 ...

honeymose
今天
3
0
数据库篇多表操作

第1章 多表操作 实际开发中,一个项目通常需要很多张表才能完成。例如:一个商城项目就需要分类表(category)、商品表(products)、订单表(orders)等多张表。且这些表的数据之间存在一定的关系...

stars永恒
今天
3
0
nginx日志自动切割

1.日志配置(Nginx 日志) access.log----记录哪些用户,哪些页面以及用户浏览器,IP等访问信息;error.log------记录服务器错误的日志 #配置日志存储路径:location / {      a...

em_aaron
昨天
5
0
java 反射

基本概念 RTTI,即Run-Time Type Identification,运行时类型识别。RTTI能在运行时就能够自动识别每个编译时已知的类型。   要想理解反射的原理,首先要了解什么是类型信息。Java让我们在运...

细节探索者
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部