OC语言字典的使用

//字典

//初始化一个字典

//注意:字典中所装的数据类型:对象类型,不可以是基本数据类型

//字典是无序的

//key通常是字符串, key必须唯一

NSDictionary *dic = [[NSDictionary alloc] initWithObjectsAndKeys:@"value", @"key", @"value1", @"key1", nil];

NSLog(@"dic is %@", dic);

//创建空的字典

NSDictionary *nullDic = [NSDictionary dictionary];

NSLog(@"nullDic is %@", nullDic);

//创建Person对象

Person *zhangsan = [[Person alloc] init];

zhangsan.name = @"张三";

zhangsan.age = 100;

Person *lisi = [[Person alloc] init];

lisi.name = @"李四";

lisi.age = 400;

Person *wangwu = [[Person alloc] init];

wangwu.name = @"王五";

wangwu.age = 500;

//创建一个数组

NSArray *names = @[zhangsan, lisi, wangwu];

NSDictionary *dic2 = [NSDictionary dictionaryWithObjectsAndKeys:

@"v1", @"k1",

@"v2", @"k2",

@"v3", @"k3",

names, @"k4", nil];

NSLog(@"dic2 is %@", dic2);

//从字典中取值,如果这个key不存在,则返回NULL

NSString *str1 = [dic2 objectForKey:@"k1"];

NSString *str2 = [dic2 objectForKey:@"k2"];

NSString *str3 = [dic2 objectForKey:@"k5"];

NSLog(@"str1 is %@", str1);

NSLog(@"str2 is %@", str2);

NSLog(@"str3 is %@", str3);

//取出字典中的数组中的第一个元素的姓名

//        NSArray *arr = [dic2 objectForKey:@"k4"];

//        Person *ps = [arr objectAtIndex:0];

//嵌套调用

Person *ps = [[dic2 objectForKey:@"k4"] objectAtIndex:0];

NSLog(@"ps name is %@", ps.name);

//字典中的键值对个数

NSInteger count = dic2.count;

NSLog(@"count is %ld", count);

//取出字典中所有的key

NSArray *keys = [dic2 allKeys];

NSLog(@"keys is %@", keys);

//取出字典中所有的value

NSArray *values = dic2.allValues;

NSLog(@"values is %@", values);

//字典的快速创建和取值

NSDictionary *dic3 = @{@"k1": @"v1",

@"k2": @"v2",

@"k3": @"v3"};

NSString *v1 = dic3[@"k1"];

NSLog(@"dic3 is %@", dic3);

NSLog(@"v1 is %@", v1);

//可变字典

//初始化空的字典

NSMutableDictionary *dic1 = [NSMutableDictionary dictionary];

//给字典预期的空间

//        NSMutableDictionary *dic2 = [NSMutableDictionary dictionaryWithCapacity:10];

//添加元素

[dic1 setObject:@"value1" forKey:@"key1"];

[dic1 setObject:@"value2" forKey:@"key2"];

[dic1 setObject:@"value3" forKey:@"key3"];

NSLog(@"dic1 is %@", dic1);

//设置键值对,如果key已经存在,则是修改key所对应的value,如果不存在,则创建一个新的键值对

[dic1 setObject:@"value6" forKey:@"key6"];

NSLog(@"dic1 is %@", dic1);

//删除元素

[dic1 removeObjectForKey:@"key6"];

NSLog(@"dic1 is %@", dic1);

//删除所有元素

[dic1 removeAllObjects];

NSLog(@"dic1 is %@", dic1);

//字典的遍历

NSDictionary *dic = @{@"k1": @"v1",

@"k2": @"v2",

@"k3": @"v3",

@"k4": @"v4",

@"k5": @"v5"};

NSArray *keys = [dic allKeys];

//遍历字典---传统遍历

for (int i = 0; i < dic.count; i++) {

//获取key

NSString *key = [keys objectAtIndex:i];

NSString *value = [dic objectForKey:key];

NSLog(@"key:%@----value:%@", key, value);

}

NSLog(@"-------------优美的分割线-------------------");

//快速遍历

//拿到的是key

for (id key in dic) {

//循环块

id value = [dic objectForKey:key];

NSLog(@"key:%@----value:%@", key, value);

}

时间: 2024-08-08 05:44:56

OC语言字典的使用的相关文章

iOS学习笔记---oc语言第五天

字典,数组 ,集排序 一.字典类 存储以下数据 name:张三; sex:男;age:18 film:风暴; playcount:10000次;price:60元 字典类用于保存具有映射关系(key-value对)的数据 对于“name:张三”来讲,key就是“name”,key对应的value是“张 三” 一个key-value对认为是一个元素(实体),字典是存储key-value对 的容器. 特点: 与数组不同,数组靠下标存取数据,数组的下标是唯一的. 字典靠key存取元素.key不能重复,

OC语言基础知识

OC语言基础知识 一.面向对象 OC语言是面向对象的,c语言是面向过程的,面向对象和面向过程只是解决问题的两种思考方式,面向过程关注的是解决问题涉及的步骤,面向对象关注的是设计能够实现解决问题所需功能的类. 术语:OO面向对象.OOP面向对象编程 二.类 (一)关于类 类的设计只关注三个东西:类名.属性和方法 注意:一般名词都是类,拥有相同属性和行为的对象都可以抽象为一个类,类名是标识符的一种,需要符合规范,通常类名的第一个字母大写,且不能有下划线,如果有多个单词则使用驼峰标识.在对方法进行类的

oc中字典的实现方法详解

一:字典的基本概念 Foundation中的字典(NSDictionary,NSMutableDictionary)是由键-值对组成的数据集合.正如,我们在字典里查找单词的定义一样. 通过key(键),查找的对应的value(值),key通常是字符串对象,也可以是其他任意类型对象.在一个字典对象中,key的值必须是唯一的. 此外,字典对象的键和值不可以为空(nil),如果需要在字典中加入一个空值,可以加入NSNull对象 二:不可变字典-NSDictionary 1:初始化(以一个元素和多个元素

oc中字典的应用详解

NSDictionary *dic=[NSDictionary dictionaryWithObject:@"卢灿小样" forKey:@"lucan"]; NSLog(@"%@",dic); NSLog(@"%@",[dic objectForKey:@"lucan"]); //输出dic键值对个数 NSLog(@"%d",dic.count); NSDictionary *dic1=

oc语言复制视频文件

1 void copyFile() 2 { 3 NSString *home=NSHomeDirectory(); 4 NSString *path=[NSString stringWithFormat:@"%@/desktop/oc.mp4",home]; 5 NSString *path1=[NSString stringWithFormat:@"%@/desktop/oc1.mp4",home]; 6 NSFileHandle *handle=[NSFileH

李洪强iOS开发之OC语言基础知识

OC语言基础知识 一.面向对象 OC语言是面向对象的,c语言是面向过程的,面向对象和面向过程只是解决问题的两种思考方式,面向过程关注的是解决问题涉及的步骤,面向对象关注的是设计能够实现解决问题所需功能的类. 术语:OO面向对象.OOP面向对象编程   二.类 (一)关于类 类的设计只关注三个东西:类名.属性和方法 注意:一般名词都是类,拥有相同属性和行为的对象都可以抽象为一个类,类名是标识符的一种,需要符合规范,通常类名的第一个字母大写,且不能有下划线,如果有多个单词则使用驼峰标识.在对方法进行

黑马程序员——OC语言继承与多态

一)继承基本概念 程序的世界和人类的“对象”世界在思想上是没有设么区别的,富二代继承了父母,自然就拥有了父母拥有的所有资源,子类继承了父类同样就拥有了父类所有的方法和属性(成员变量). 在这里动物是猫类和狗类的父类,黑猫和白猫类是猫类的子类. >>继承的好处: (1)抽取出了重复的代码 (2)建立了类和类之间的联系 >>继承的缺点: 耦合性太强 二)继承格式 @interface Animal:NSObject //动物里继承了NSObject,获得NSObject类的方法: @e

OC语言的特性(二)-Block

本篇文章的主要内容 了解何谓block. 了解block的使用方法. Block 是iOS在4.0版本之后新增的程序语法. 在iOS SDK 4.0之后,Block几乎出现在所有新版的API之中,换句话说,如果不了解Block这个概念就无法使用SDK 4.0版本以后的新功能,因此虽然Block本身的语法有点难度,但为了使用iOS的新功能我们还是得硬着头皮去了解这个新的程序概念. 一.看一看什么是Block 我们使用'^'运算符来声明一个Block变量,而且在声明完一个Block变量后要像声明普通

1,OC语言的前世今生 ,2,OC语言入门,3,OC语言与C的差异,4,面向对象,5,类和对象的抽象关系,6,类的代码创建,7,类的成员组成及访问

1,OC语言的前世今生 , 一, 在20世纪80年代早期,布莱德.麦克(Brad Cox)设计了OC语言,它在C语言的基础上增加了一层,这意味着对C进行了扩展,从而创造出一门新的程序设计语言,支持对象的创建和操作. 二,1985年,被赶出苹果公司的乔帮主成立了Next公司; 三, 1988年,Next计算机公司获得了OC语言的授权,并发展了OC语言库和一个开发环境,1994年,Next计算机公司(同年更名为Next软件公司)和Sun公司针对NEXTSTEP系统联合发布了一个标准规范,名为OPEN