OC中Foundation框架之NSDictionary、NSMutableDictionary
NSDictionary概述
NSDictionary的作用类似:通过一个key ,就能找到对应的value
同样 NSDictionary是不可变的,一旦初始化完毕,里面的内容就无法修改
NSDictionary创建
+(instancetype) dictionary;
+(instancetype)dictionaryWithObject:(id) object forKey:(id<NSCopying>)key;//objectForKey,根据键取值
+(instancetype)dictionaryWithObjectsAndKeys:(id)firstObject,...; 例:
先值,后key 自动组成一对,另外类似java的map 存入后的数据时无序的
[NSDictionary dictionaryWithObjectAndKeys:@"张三",@"zs",@"李四",@"ls",nil]; 快速创建字典
NSDictionary *dictator =@{@"zs":@"zhangsan",@"ls":@"lisi",@"ww":@"wangwu"}; 注意:key值不能重复,在java中key重复时,会覆盖value,而oc中key重复则不会存入;
NSDictionary的基本使用
//返回字典的键值对数目
-(NSUInteger)count;
//根据key取出value
-(id)objectForKey:(id)aKey;
NSDictionary的遍历
使用增强型for循环
for(NSString *str in NSDictionary){
NSString *ss =[ dic objectForKey:str]
NSLog(@"%@ --->%@",str,ss);
} 使用block进行遍历
[ns enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) {
NSLog(@"%@---->%@",key,id);
}]
NSDictionary的文件操作
将NSDictionary写入文件中
-(BOOL)writeToFile:(NSString *)path atomically:(BOOL) useAuxiliaryFile ;
-(BOOL) writeToURL:(NSURL *)url atomically:(BOOL) atomically; 例:
//写入文件
NSDictionary *dictator=@{@"zs":@"zhangsan",@"ls":@"lisi",@ww":@wanggu"}; [dict3 writeToFile:@"/Users/liwei/Desktop/dict.plist" atomically:YES]; //读取文件
NSDictionary *dict4=[NSDictionary dictionaryWithContentsOfFile:@"/Users/liwei/Desktop/dict.plist"]
NSMutableDictionary概述
什么是NSMutableDictionary
NSMutableDictionary 是NSDictionary得子类
NSDictionary是不可变的,一旦初始化完毕后,它里面的内容就永远是固定的,不能删除里面的元素,也不能再往里面添加元素
NSMutableDictionary 是可变的,可以随时往里面添加、更改、删除元素
NSMutableDictionary常用方法
添加一个键值对(会把aKey之前对应的值给替换掉)
-(void)setObject :(id) anObject forKey:(id <NSCopying>)aKey;
通过aKey删除对应的value
-(void)removeObjectForKey:(id)aKey;
通过aKey删除对应的value
-(void)removeAllObjects;
删除所有的键值对
NSMutableDictionary简写形式
NSMutableDictionary *dict =[NSMutableDictionary dictionary];
//快速创建字典
dict.dictionary = @{@"name":@"bbb",@"age":@""};
//添加值到Dicitonary中
[dict setObject:@"man" forKey:@"sex"];
//查看字典内容
NSLog(@"%@",dict);
NSDictionary与NSArray对比
区别:
)NSArray是有序的,NSDictionary是无序的
)NSArray是通过下标访问元素,NSDictionary是通过key访问元素 NSArray的用法
)创建
@[@"java",@"rose"](返回是不可变数组)
)访问
id d =array[];
)赋值
array[]=@"jack"; NSDictionary的用法
)创建
@{@"name";@"jack",@"phone":@""}(返回是不可变字典)
)访问
id d =dict[@"name"];
)赋值
dict[@"name"]=@"jack";
OC中Foundation框架之NSDictionary、NSMutableDictionary的更多相关文章
- OC中Foundation框架之NSString、NSMutableString
创建方式 )直接赋值 NSString *str =@"abc"; )创建对象 NSString *str2 = [[NSString alloc]init]; str2 =@&q ...
- OC中Foundation框架
框架的概念 框架是由许多类.方法.函数.文档按照一定的逻辑组织起来的组合,以便使研发程序变的更容易在OS X下地Mac操作系统中大约有80个框架为所有程序开发奠定基础的框架称为Foundation框架 ...
- OC中Foundation框架之NSArray、NSMutableArray
NSArray概述 NSArray是OC中的数组类 NSArray特点 )只能存放任意OC对象,并且是有顺序的 )不能存放非OC对象,比如int/float/double/char/enum/stru ...
- Foundation框架--字典( NSDictionary NSMutableDictionary )
基础知识 1.字典不允许相同的key,但允许有相同的value. 2,字典是无序的,字典不能排序. 3.字典里的内容是成对存在的,不会出现单数. 4.快速创建的方式只适合不可变字典. 不可变字典 #i ...
- 黑马程序员——OC语言Foundation框架 (2) NSArray NSSet NSDictionary\NSMutableDictionary
Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一)NSArray 1>NSArray :不可变数组 ①创建方法 ...
- OC - 7.Foundation框架的简单介绍
OC语言-07-OC语言-Foundation框架 结构体 NSRange/CGRange 用来表示一个元素在另一个元素中的范围,NSRange等价于CGRange 包含两个属性: NSUInte ...
- 黑马程序员——OC语言Foundation框架 NSArray NSSet NSDictionary\NSMutableDictionary
Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一) NSNumber 将各种基本数据类型包装成NSNumber对象 @ ...
- [OC Foundation框架 - 10] NSDictionary
通过唯一的key找到相应的value,类似于Map NSDictionary是不可变的 1.创建 void dicCreate() { //Immutable // NSDictionary *d ...
- Objective-C:Foundation框架-常用类-NSMutableDictionary
直接上代码吧: #import <Foundation/Foundation.h> @interface Student : NSObject @property (nonatomic, ...
随机推荐
- 实现类似MVC ViewBag类型的对象
public class ViewBag : DynamicObject { private readonly Dictionary<string,dynamic> dic=new Dic ...
- ubuntu下命令使用
sudo apt-get -f install:修复函数依赖 df -hl:查看空间使用状况 nvidia-smi:常看GPU使用率
- 2.4G无线收发模块/射频RFM75调试总结/RF知识整理
射频RFM75通信是收发双方都需要编程的器件,收发双方的通道频率,空中传输速率设置一致,调试时必须先调通一块再调另一块,否则出现问题了就不知道是发送端有问题还是接收端有问题.调试必须理清思路.正确的方 ...
- 青客宝redis内部分享ppt
Redis:最好的缓存数据库 说Redis是缓存服务,估计有些人会不开心,因为Redis也可以把数据库持久化,但是在大多数情况Redis的竞争力是提供缓存服务.说到缓存服务必然会想到Memcached ...
- 设置ssh只允许用户从指定的IP登陆
假设 我们公司的固定IP是 183.21.89.249 连接上我们自己进行管理的服务器 然后编辑ssh的配置文件默认 /etc/ssh/sshd_config 在文件最后面另起一行添加 ...
- 老李分享:android手机测试之适配(1)
Android的屏幕适配一直以来都在折磨着我们这些开发者,本篇文章以Google的官方文档为基础,全面而深入的讲解了Android屏幕适配的原因.重要概念.解决方案及最佳实践,我相信如果你能认真的学习 ...
- ecshop SQL注入漏洞导致代码执行
漏洞名称:ecshop SQL注入漏洞导致代码执行补丁编号:11208761补丁文件:/includes/libinsert.php补丁来源:云盾自研漏洞描述:ecshop的/includes/lib ...
- Python os与sys模块解析
os与sys模块的官方解释如下: os: This module provides a portable way of using operating system dependent functio ...
- ARM中断处理过程
以s3c2440 ARM9核为例: 一:s3c2440 ARM处理器特性: 1.S3C2440支持个中断源,含子中断源: 2.ARM9采用五级流水线方式: 3.支持外部中断和内部中断: 二.s3c2 ...
- javascript中的几种遍历方法浅析
1. for...in 用于对数组或者对象的属性的可枚举属性进行循环操作.注意该对象来自原型链上的可枚举属性也会被循环.下面看例子 var arr = ["lee","h ...