NSDictionary基本概念
2024-09-04 06:57:38
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);
最新文章
- 【java消息格式化】使用MessageFormat进行消息格式化
- KS8U读卡器
- [.NET] 使用C#开发SQL Function来提供数据 - 天气预报
- python(3)-深浅拷贝
- Ajax--xml格式及注意事项
- Spring MVC+JSP实现三级联动
- openfire插件开发的几点说明
- 201521123060 《Java程序设计》第7周学习总结
- webpack 入门指南
- JavaScript基础知识(概念、常量和变量)
- HDU 4526 拼车记
- [Swift]LeetCode900. RLE 迭代器 | RLE Iterator
- KEIL_MDK生成Bin文件
- [Git] 拉开发分支的代码报错
- 二十二:制作app的时候超出部分不能滑动
- linux基本
- 解决“UnicodeEncodeError: &#39;gbk&#39; codec can&#39;t encode character u&#39;\xa9&#39; in position 24051: illegal multibyte sequence”错误
- WEB开发库收集
- ELK环境配置
- github上打包的样式为什么在预览的时候,出现404
热门文章
- Java Swing 如何设置图片大小
- Storm集群安装Version1.0.1开启Kerberos
- 前端后端通信初步尝试(javascript - flask)
- python + pymysql连接数据库报“(2003, ";Can&#39;t connect to MySQL server on &#39;XXX数据库地址&#39; (timed out)";)”
- linux系统安装python3和pip
- mysql yum无法安装的原因
- vue 多级路由嵌套后打开页面是空白
- &#39;:app@debug/compileClasspath&#39;: Could not find any version that matches com.android.support:appcompat-v7:30.+.
- win10 防火墙配置 允许局域网其他设备访问本地工程
- 【Android】安卓四大组件之Activity(一)