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, ...
随机推荐
- POP3是收邮件的协议,SMTP是发邮件的协议,IMAP是一种邮箱通信协议。
我也是第一次接触这种服务,是因为我自己在做一个小小的自动推送天气情况到自己邮箱.所以才碰到这个的/ 看一下标题,我们可以先这样理解. POP3(Post Office Protocol - Versi ...
- WebService从服务端到客户端的用例
1.首先编写Wsdl(基于契约优先的方式),要注意的是命名空间(若是使用include或import)最好使用一致的,代码如下: <?xml version="1.0" en ...
- Struts2(二)之封装请求正文、数据类型转换、数据验证
一.封装请求正文到对象中(重点) 1.1.静态参数封装 在struts.xml文件中,给动作类注入值,使用的是setter方法 1.2.动态参数封装 通过用户表单封装请求正文参数 1.2.1.动作类作 ...
- vue学习笔记 计算属性(四)
计算属性就是vue实例里的computed属性,对应一个对象,里面可以放各种方法,方法的作用就是可以生成和数据变量对应的计算后的变量,跟数据相关的复杂逻辑变量,都可以使用计算属性实现,computed ...
- deepin系统下如何设置wifi热点(亲测有效)
deepin系统下如何设置wifi热点(亲测有效) deepin wifi ap linux 热点 首先必须吐槽一下linux下设置wifi太累了....来来回回折腾了我好久的说.心累... 好了废话 ...
- JIRA6.36-7.23数据迁移文档
JIRA6.3.6-JIRA7.2.3数据迁移文档 安装JIRA7.2.3 安装包位于服务器/opt/SOFTWARE_PACKAGE目录下 建立JIRA安装的目录数据目录 cd /opt mkdir ...
- 【C语言】模拟实现printf函数(可变参数)
一.printf函数介绍 printf功能 printf函数是格式化输出函数,一般用于向标准输出设备按规定格式输出信息. printf原型 int printf( const char* format ...
- opencv配置(win10+VS2015+opencv3.1)
Step 1:准备工作 a.win10 b.vs2015 c.opencv3.1[从http://opencv.org/downloads.html下载] Step 2.开始安装 a. 双击openc ...
- Gym 101257G 24 (概率+二分)
题意: 有一道分值为sa的题,n个人比赛写这道题,按照递减的顺序给出每个人的当前分数,和每个人写不出这道题的概率,让你输出有反超现象出现的期望 思路:由于之前把题目翻译错了导致很久没有相通,后来看了别 ...
- React-Native 之 项目实战(四)
前言 本文有配套视频,可以酌情观看. 文中内容因各人理解不同,可能会有所偏差,欢迎朋友们联系我. 文中所有内容仅供学习交流之用,不可用于商业用途,如因此引起的相关法律法规责任,与我无关. 如文中内容对 ...