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, ...
随机推荐
- (转)Nginx + uwsgi + web.py + MySQLdb
一.背景知识: Web服务器上有多种方式运行Python: 传统上的CGI方式:基本已被淘汰 mod_python的模块方式:仍在广泛使用,但生产环境中也被逐步淘汰 uwsgi方式:目前生产环境下最受 ...
- 在ExpressJS中设置二级域名跨域共享Cookie
问题:我使用expressjs和mongostore来管理session.下面是expressjs中的设置. app.configure(function(){ app.use(express.ses ...
- 面向对象编程思想(前传)--你必须知道的javascript
在写面向对象编程思想-设计模式中的js部分的时候发现很多基础知识不了解的话,是很难真正理解和读懂js面向对象的代码.为此,在这里先快速补上.然后继续我们的面向对象编程思想-设计模式. 什么是鸭子类型 ...
- DPDK QoS之分层调度器
原创翻译,转载请注明出处. 分层调度器的时机主要体现在TX侧,正好在传递报文之前.它的主要目的是在每个网络节点按照服务级别协议来对不同的流量分类和对不同的用户的报文区分优先级并排序. 一.概述分层调度 ...
- 玩转 SSH 目录
在做一个新的项目的时候,需要重新搭建一个项目. 于是趁着这个机会把之前学的几个框架的搭建都写一写,整理一下,同时也可以给大家一些参考.何乐而不为叻. 在这个系列中, 我将使用 IntelJ IDEA ...
- .Net面试葵花宝典
1. 面向对象的特征有哪些方面 抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面.抽象并不打算了解全部问题,而只是选择其中 ...
- laravel redis Error while reading line from the server.
代码运行一段时间后,会报下面的错误. [Predis\Connection\ConnectionException] Error while reading line from the server. ...
- WebService基础学习(二)—三要素
一.Java中WebService规范 JAVA 中共有三种WebService 规范,分别是JAX-WS.JAX-RS.JAXM&SAAJ(废弃). 1.JAX-WS规范 ...
- Struts2基础学习(四)—类型转换器和数据校验
一.自定义类型转换器 1.概述 Struts2提供了常规类型转换器,可以用于常用数据类型的转换,但如果目标类型是一个特殊类型,则需要自定义转换器.Struts2 类型转换器实际上都是基于OG ...
- 关于ARM内核与架构的解释
本文摘自某论坛某位大神的一段回复,经典至极,copy来己用! 只要你玩过ARM内核的芯片,那么关于内核和架构,我想应该或多或少的困惑过你,看了下面的介绍,你应该会清楚很多! 好比你盖房子,刚开始因为水 ...