OC语言基础之NSDictionary
1.NSDictionary字典的创建
1: // key value
2: // key -==> value
3: NSDictionary *dict = [NSDictionary dictionaryWithObject:@"v" forKey:@"key"];
4:
5: NSArray *keys = [NSArray arrayWithObjects:@"k1", @"k2", nil];
6: NSArray *values = [NSArray arrayWithObjects:@"v1", @"v2", nil];
7: NSDictionary *dict1 = [NSDictionary dictionaryWithObjects:values
8: forKeys:keys];
9: NSDictionary *dict2 = [NSDictionary dictionaryWithObjectsAndKeys:@"v", @"key",
10: @"v1", @"key1",
11: nil];
12: NSLog(@"%@", dict2);
13:
14:
15: // BOOL isSuccess = [dict writeToFile:@"/Users/apple/Desktop/1.txt"
16: // atomically:YES];
17: // if (isSuccess) {
18: // NSLog(@"成功");
19: // }else{
20: // NSLog(@"写入失败");
21: // }
22:
23: NSDictionary *dict3 = [NSDictionary dictionaryWithContentsOfFile:@"/Users/apple/Desktop/1.txt"];
24: NSLog(@"%@", dict3);
字典的遍历
1: NSDictionary *pDict = [NSDictionary dictionaryWithObjectsAndKeys:@"abc", @"name",
2: @"11", @"age",
3: @"男", @"gender",
4: nil];
5: // NSArray *keys = [pDict allKeys];
6: // for (int i = 0; i<[pDict count]; i++) {
7: // NSString *key = [keys objectAtIndex:i];
8: // NSString *value = [pDict objectForKey:key];
9: // NSLog(@"%@: value= %@", key, value);
10: // }
11:
12: // for (id key in pDict) {
13: // NSLog(@"%@", key);
14: // }
15: //
16:
17: [pDict enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) {
18: NSLog(@"%@", key);
19:
20: // 修改stop指向内存的值
21: *stop = YES;
22: }];
2.可变字典
1:
2: NSMutableDictionary *dictM = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"v", @"key",
3: nil];
4: [dictM setObject:@"1" forKey:@"key"];
5: NSLog(@"%@", dictM);
3.具体使用的例子
1: // 名字
2: // 年龄
3: // 性别
4: NSDictionary *pDict = [NSDictionary dictionaryWithObjectsAndKeys:
5: @"11", @"age",
6: @"abc", @"name",
7: @"男", @"gender",
8: nil];
9:
10:
11: // NSMutableArray *array = [NSMutableArray array];
12: // [array addObject:pDict];
13:
14: id name = [pDict objectForKey:@"name"];
15: NSLog(@"%@", name);
4.各常用类对比
1: /*
2: 集合
3: 1.NSArray\NSMutableArray
4: * 有序
5: * 快速创建(不可变):@[obj1, obj2, obj3]
6: * 快速访问元素:数组名[i]
7:
8: 2.NSSet\NSMutableSet
9: * 无序
10:
11: 3.NSDictionary\NSMutableDictionary
12: * 无序
13: * 快速创建(不可变):@{key1 : value1, key2 : value2}
14: * 快速访问元素:字典名[key]
15: */
例子
1: /*
2: 字典:
3:
4: key ----> value
5: 索引 ----> 文字内容
6:
7: 里面存储的东西都是键值对
8:
9:
10: */
11:
12: // NSDictionary *dict = [NSDictionary dictionaryWithObject:@"jack" forKey:@"name"];
13:
14:
15: // NSArray *keys = @[@"name", @"address"];
16: // NSArray *objects = @[@"jack", @"北京"];
17:
18: // NSDictionary *dict = [NSDictionary dictionaryWithObjects:objects forKeys:keys];
19:
20:
21: /*
22: NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:
23: @"jack", @"name",
24: @"北京", @"address",
25: @"32423434", @"qq", nil];*/
26:
27:
28: NSDictionary *dict = @{@"name" : @"jack", @"address" : @"北京"};
29:
30: // id obj = [dict objectForKey:@"name"];
31:
32: id obj = dict[@"name"];
33:
34: NSLog(@"%@", obj);
35:
36:
37:
38: // 返回的是键值对的个数
39: NSLog(@"%ld", dict.count);
OC语言基础之NSDictionary的更多相关文章
- OC语言基础知识
OC语言基础知识 一.面向对象 OC语言是面向对象的,c语言是面向过程的,面向对象和面向过程只是解决问题的两种思考方式,面向过程关注的是解决问题涉及的步骤,面向对象关注的是设计能够实现解决问题所需功能 ...
- 李洪强iOS开发之OC语言基础知识
OC语言基础知识 一.面向对象 OC语言是面向对象的,c语言是面向过程的,面向对象和面向过程只是解决问题的两种思考方式,面向过程关注的是解决问题涉及的步骤,面向对象关注的是设计能够实现解决问题所需功能 ...
- 黑马程序员——OC语言基础语法 面向对象的思想
Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结)(一)基础语法 1)关键字 @interface.@implementati ...
- OC语言基础之代码的封装
1.封装的注意点 1: // 成员变量尽量不要用@public 2: // @public 3: int age; 1: //@public 2: // 只读(readonly):只允许外界访问我的n ...
- OC语言基础之NSArray
0.数组的分类 NSArray :不可变数组 NSMutableArray : 可变数组 1: // @[] 只创建不可变数组NSArray 2: /* 错误写法 3: NSMutableArray ...
- OC语言基础之NSString
1.字符串的创建 1: NSString *s1 = @"jack"; 2: 3: //NSString *s2 = [[NSString alloc] initWithStrin ...
- OC语言基础之利用property优化封装
1.property功能用法 1: // @property:可以自动生成某个成员变量的setter和getter声明 2: @property int age;//可以直接免去变量的声明 3: // ...
- OC语言基础之函数与方法
方法 1.对象方法都是以减号 - 2.对象方法的声明必须写在@interface和@end之间 对象方法的实现必须写在@implementation和@end之间 3.对象方法只能由对象来调用 ...
- OC语言基础之类的本质
一.类的本质 1: // 类本身也是一个对象,是个Class类型的对象,简称类对象 2: 3: /* 4: 利用Class 创建 Person类对象 5: 6: 利用 Person类对象 创建 Per ...
随机推荐
- Python爬虫学习笔记之爬今日头条的街拍图片
代码: import requests import os from hashlib import md5 from urllib.parse import urlencode from multip ...
- 归档普通对象Demo示例程序源代码
源代码下载链接:06-归档普通对象.zip34.2 KB // MJPerson.h // // MJPerson.h // 06-归档普通对象 // // Created by apple o ...
- LCD实验学习笔记(二):head.S
ARM加电后从0地址开始取指执行. 连接为bin文件时时,连接脚本lcd.lds指定将head.o放在开头,所以head.S就是系统起步的地方. head.S开头就是异常向量定义,0地址就是reset ...
- 关于might_sleep的一点说明---CONFIG_DEBUG_ATOMIC_SLEEP【转】
转自:http://blog.chinaunix.net/uid-23769728-id-3157536.html 这个函数我在看代码时基本上是直接忽略的(因为我知道它实际上不干什么事),不过因为内核 ...
- python学习笔记 async and await
用asyncio提供的@asyncio.coroutine可以把一个generator标记为coroutine类型,然后在coroutine内部用yield from调用另一个coroutine实现异 ...
- suse下自动启动脚本
suse下自动启动脚本 http://blog.csdn.net/herobox/article/details/8961358 suse下自动启动脚本 也许你对SUSE Linux很了解,也许你不太 ...
- input button 不能在后台用Enabled
<input type="button" value="上传" class="uploadButton" runat="s ...
- python 复习 4-1 函数、参数、返回值、递归
函数 完成特定功能的一个语句组,这个语句组可以作为一个单位使用,并且给它组语句取一个名子,即函数名 可以通过函数名在程序不同地方多次执行,即函数调用 预定义函数(可以直接使用) 自定义函数(自编写的) ...
- [ 总结 ] Linux系统测试硬盘I/O
检测硬盘I/O相对来说还是一个比较抽象的概念,但是对系统性能的影响还是至关重要的. (1)使用hdparm命令检测读取速度: hdparm命令提供了一个命令行的接口用于读取和设置IDE和SCSI ...
- 【 Nginx 】proxy_cache 模块的使用记录
部署环境:nginx + tomcat 同一台服务器. 通过nginx反向代理tomcat. 配置如下: user www www; worker_processes auto; error_log ...