NSDictionary基本概念
1.NSDictionar基本概念
- 什么是NSDictionary
- NSDictionary翻译过来叫做”字典”
- 日常生活中,“字典”的作用:通过一个拼音或者汉字,就能找到对应的详细解释
- NSDictionary的作用类似:通过一个key,就能找到对应的value
- NSDictionary是不可变的, 一旦初始化完毕, 里面的内容就无法修改
2.NSDictionary的创建
- + (instancetype)dictionary;
- + (instancetype)dictionaryWithObject:(id)object forKey:(id <NSCopying>)key;
- + (instancetype)dictionaryWithObjectsAndKeys:(id)firstObject, ...;
- + (id)dictionaryWithContentsOfFile:(NSString *)path;
- + (id)dictionaryWithContentsOfURL:(NSURL *)url;
- NSDictionary创建简写
以前
- NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:@"lnj", @"name", @"12345678", @"phone", @"天朝", @"address", nil];
现在
- NSDictionary *dict = @{@"name":@"lnj", @"phone":@"12345678", @"address":@"天朝"};
- NSDictionary获取元素简写
以前
- [dict objectForKey:@"name”];
现在
- dict[@"name”];
- 键值对集合的特点
- 字典存储的时候,必须是"键值对"的方式来存储(同时键不要重复)
- 键值对中存储的数据是"无序的".
- 键值对集合可以根据键, 快速获取数据.
3.NSDictionary的遍历
- (NSUInteger)count;
- 返回字典的键值对数目
- (id)objectForKey:(id)aKey;
- 根据key取出value
- 快速遍历
- NSDictionary *dict = @{@"name":@"lnj", @"phone":@"12345678", @"address":@"天朝"};
- for (NSString *key in dict) {
- NSLog(@"key = %@, value = %@", key, dict[key]);
- }
- Block遍历
- [dict enumerateKeysAndObjectsUsingBlock:^(NSString *key, NSString *obj, BOOL *stop) {
- NSLog(@"key = %@, value = %@", key, obj);
- }];
4.NSDictionary文件操作
将字典写入文件中
- - (BOOL)writeToFile:(NSString *)path atomically:(BOOL)useAuxiliaryFile;
- - (BOOL)writeToURL:(NSURL *)url atomically:(BOOL)atomically;
- 存结果是xml文件格式,但苹果官方推荐为plist后缀。
示例
- NSDictionary *dict = @{@"name":@"lnj", @"phone":@"12345678", @"address":@"天朝"};
- BOOL flag = [dict writeToFile:@"/Users/LNJ/Desktop/dict.plist" atomically:YES];
- NSLog(@"flag = %i", flag);
- 从文件中读取字典
- NSDictionary *newDict = [NSDictionary dictionaryWithContentsOfFile:@"/Users/LNJ/Desktop/dict.plist"];
- NSLog(@"newDict = %@", newDict);
NSDictionary基本概念的更多相关文章
- OC基础(24)
NSMutableArray基本概念 NSDictionary基本概念 NSMutableDictionary基本概念 常见的结构体 *:first-child { margin-top: 0 !im ...
- OC基础笔记目录
OC基础(1) Objective-C简介 OC和C对比 第一个OC程序 面向对象思想 OC基础(2) 类与对象 类的设计 第一个OC类 对象方法的声明和实现 类方法的声明和实现 OC基础(3) 对象 ...
- OC-基础数据类型
七 字符串与基本数据类型转换 获取字符串的每个字符/字符串和其他数据类型转换 八 NSMutableString 基本概念/常用方法 九 NSArray NSArray基本概念/创建方式/注意事项/常 ...
- 一些NSArray,NSDictionary,NSSet相关的算法知识
iOS编程当中的几个集合类:NSArray,NSDictionary,NSSet以及对应的Mutable版本,应该所有人都用过.只是简单使用的话,相信没人会用错,但要做到高效(时间复杂度)精确(业务准 ...
- Objective-C关键字和概念
Objective-C关键字和概念 @ 看到这个关键字,我们就应该想到,这是Object-C对C语言的扩展,例如@interface XXX. @interface 声明类 @implementati ...
- objective-c系列-NSDictionary&NSMutableDictionary
********************************************* NSDictionary ***************************************** ...
- [转]一些NSArray,NSDictionary,NSSet相关的算法知识
iOS编程当中的几个集合类:NSArray,NSDictionary,NSSet以及对应的Mutable版本,应该所有人都用过.只是简单使用的话,相信没人会用错,但要做到高效(时间复杂度)精确(业务准 ...
- NSArray,NSSet,NSDictionary的遍历,基本使用集锦
NSArray *array = [NSArray arrayWithObjects:@"zhangsan",@"lisi",@"wangwu&quo ...
- objective-c 关键字和概念
@ 看到这个关键字,我们就应该想到,这是Object-C对C语言的扩展,例如@interface XXX. @interface 声明类 @implementation 实现类 @protocol 声 ...
随机推荐
- 如何使用Navicat连接宝塔面板上安装的mysql数据库?
运行环境描述 阿里云ECS 系统:CentOS Linux 7.4.1708 (Core) 宝塔面板: 6.9.0 数据库:MySQL 5.7.19 Navicat 远程连接 Navicat报错信息: ...
- JavaScript交互式网页设计 • 【第6章 初识jQuery】
全部章节 >>>> 本章目录 6.1 jQuery概述 6.1.1 初识 jQuery 6.1.2 jQuery 基本功能 6.1.3 搭建 jQuery 开发环境 6.1 ...
- Java面向对象程序设计笔记 • 【目录】
持续更新中- 我的大学笔记>>> 章节 内容 实践练习 Java面向对象作业目录(作业笔记) 第1章 Java面向对象笔记 • [第1章 面向对象] 第2章 Java面向对象笔记 • ...
- Kafka版本介绍Version2.4.0
1.说明 Kafka的版本从0.11.0.X到1.0.X, 再到2.0.X大版本, 其实没有经过几个版本, 只是版本号变化较大. 2.最新发布版本 截止本文章2020年2月22号发布时, Kafka ...
- 使用docker或者docker-compose部署Zookeeper集群
之前有介绍过Zookeeper的安装部署(Zookeeper基础教程(二):Zookeeper安装),但是那里我是基于独立的虚拟机来实现部署的,这种部署方式适合线上集群部署.后来有几次想用一下Zook ...
- ORACLE 之 按月循环执行操作
DECLARE i number; BEGIN i:= 201705; WHILE i <202104 LOOP if i=201713 then i:=201801; elsif i=2018 ...
- Linux下校验SHA1和MD5的方法
当我们从互联网下载东西或者从U盘拷贝东西的时候,通常是不会和源文件有什么区别的,但是在偶然的情况下会出现下载或者拷贝出错的情况, 尤其是在下载大文件的时候,比如系统光盘......当你装机到一半才发现 ...
- java邮件打包在linux备份数据库练习
注:图片如果损坏,点击文章链接:https://www.toutiao.com/i6812982512256549387/ 承接上一篇文档<Java实现163邮箱发送邮件到QQ邮箱> 主方 ...
- HttpServer: 基于IOCP模型且集成Openssl的轻量级高性能web服务器
2021年4月写过一个轻量级的web服务器HttpServer,见文章: <HttpServer:一款Windows平台下基于IOCP模型的高并发轻量级web服务器>,但一直没有时间添加O ...
- Java代码批量插入数据到MySQL
1.批量插入 import java.io.BufferedReader; import java.io.FileInputStream; import java.io.FileNotFoundExc ...