IOS学习笔记二十一(NSDictionary、NSMutableDictionary)

1、NSDictionary、NSMutableDictionary

可以理解为java里面的map,一个key对应一个value,key不可以重复

NSDictionary不可变,NSMutableDictionary可变

NSMutableDictionary比NSDictionary多了一些增加,删除,修改的函数

比如setObject:forKey:  removeObjectForKey:

 

 

 

 

 

 

 

 

2、测试Demo

NSDictionary+print.h

#import <Foundation/Foundation.h>#ifndef NSDictionary_print_h
#define NSDictionary_print_h
@interface NSDictionary (print)
-(void)print;
@end#endif /* NSDictionary_print_h */

 

NSDictionary+print.m

#import <Foundation/Foundation.h>
#import "NSDictionary+print.h"@implementation NSDictionary(print)
-(void)print
{NSMutableString *result = [NSMutableString stringWithFormat:@"{"];for (id key in self){[result appendString:[key description]];[result appendString:@"="];[result appendString:[self[key] description]];[result appendString:@", "];}[result appendString:@"}"];NSLog(@"%@", result);
}
@end

 

main.m

#import "NSDictionary+print.h"int main(int argc, char * argv[]) {@autoreleasepool {NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:@"chenyu1", @"1", @"chenyu2", @"2", @"chenyu3", @"3", @"chenyu4", @"4", @"chenyu5", @"5",nil];[dict print];NSLog(@"dict有%ld个key-value", [dict count]);NSLog(@"key is 2 value is %@", [dict[@"2"] description]);NSLog(@"key is 2 value is %@", [dict objectForKey:@"2"]);NSLog(@"dict 所有的key是:%@", [dict allKeys]);NSEnumerator *en = [dict objectEnumerator];id obj;//遍历valuewhile (obj = [en nextObject]){NSLog(@"%@", obj);}[dict enumerateKeysAndObjectsUsingBlock:^(id  _Nonnull key, id  _Nonnull obj, BOOL * _Nonnull stop) {NSLog(@"key的值为:%@", key);NSLog(@"value的值为:%@", obj);}];NSMutableDictionary *muDict = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"chenyu1", @"1", @"chenyu2", @"2", @"chenyu3", @"3", @"chenyu4", @"4", @"chenyu5", @"5",nil];[muDict print];[muDict setObject:@"chen6" forKey:@"6"];[muDict setObject:@"chen6" forKey:@"3"];[muDict print];[muDict removeObjectForKey:@"1"];[muDict print];}
}

 

 

 

 

3、运行结果

2018-07-19 23:40:03.444261+0800 cyTest[67110:13778920] {3=chenyu3, 1=chenyu1, 4=chenyu4, 2=chenyu2, 5=chenyu5, }
2018-07-19 23:40:03.446141+0800 cyTest[67110:13778920] dict有5个key-value
2018-07-19 23:40:03.446320+0800 cyTest[67110:13778920] key is 2 value is chenyu2
2018-07-19 23:40:03.446681+0800 cyTest[67110:13778920] key is 2 value is chenyu2
2018-07-19 23:40:03.446972+0800 cyTest[67110:13778920] dict 所有的key是:(3,1,4,2,5
)
2018-07-19 23:40:03.447145+0800 cyTest[67110:13778920] chenyu3
2018-07-19 23:40:03.447340+0800 cyTest[67110:13778920] chenyu1
2018-07-19 23:40:03.447447+0800 cyTest[67110:13778920] chenyu4
2018-07-19 23:40:03.447578+0800 cyTest[67110:13778920] chenyu2
2018-07-19 23:40:03.447690+0800 cyTest[67110:13778920] chenyu5
2018-07-19 23:40:03.448208+0800 cyTest[67110:13778920] key的值为:3
2018-07-19 23:40:03.448322+0800 cyTest[67110:13778920] value的值为:chenyu3
2018-07-19 23:40:03.448422+0800 cyTest[67110:13778920] key的值为:1
2018-07-19 23:40:03.448515+0800 cyTest[67110:13778920] value的值为:chenyu1
2018-07-19 23:40:03.448613+0800 cyTest[67110:13778920] key的值为:4
2018-07-19 23:40:03.466511+0800 cyTest[67110:13778920] value的值为:chenyu4
2018-07-19 23:40:03.466823+0800 cyTest[67110:13778920] key的值为:2
2018-07-19 23:40:03.466983+0800 cyTest[67110:13778920] value的值为:chenyu2
2018-07-19 23:40:03.467161+0800 cyTest[67110:13778920] key的值为:5
2018-07-19 23:40:03.467334+0800 cyTest[67110:13778920] value的值为:chenyu5
2018-07-19 23:40:03.467602+0800 cyTest[67110:13778920] {3=chenyu3, 1=chenyu1, 4=chenyu4, 2=chenyu2, 5=chenyu5, }
2018-07-19 23:40:03.467838+0800 cyTest[67110:13778920] {3=chen6, 1=chenyu1, 6=chen6, 4=chenyu4, 2=chenyu2, 5=chenyu5, }
2018-07-19 23:40:03.468030+0800 cyTest[67110:13778920] {3=chen6, 6=chen6, 4=chenyu4, 2=chenyu2, 5=chenyu5, }

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/289470.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Blog.Core开源】将Program升级为.NET6.0版本

大家假期好&#xff0c;好久不见&#xff0c;之前忙于其他事情&#xff0c;公众号暂时搁置了一个月了&#xff0c;新的一年开始了&#xff0c;很多小伙伴开始催更了&#xff0c;粉丝的要求必须满足。2022年打算重点推广BCVP社区&#xff0c;所以还是希望有愿意投稿的小伙伴&…

python画两条曲线_查找在matplotlib中绘制的两条曲线之间的区域(在区域之间填充)...

我有两条曲线的x和y值列表&#xff0c;它们都有奇怪的形状&#xff0c;而且我没有任何函数。我需要做两件事&#xff1a;&#xff08;1&#xff09;绘制它并对曲线之间的区域进行着色&#xff0c;如下图所示&#xff1b;&#xff08;2&#xff09;找到曲线之间该着色区域的总面…

OXY OPENCART 商城自适应主题模板 ABC-0020-05

OXY OPENCART 商城自适应主题模板 ABC-0020-05OXY FEATURESLayoutFoundation Framework – the most advanced responsive front-end framework in the world.100% Fully Responsive – Solid Flexible Responsive Layout that scales from 320px to 1440px.You can disable re…

年月跨度_建筑结构丨国内跨度最大的张弦桁架工程——合肥滨湖国际会展中心二期首榀桁架滑移成功...

来源&#xff1a;中建科工 华中大区。2020年12月8日全国公建领域最大跨度的张弦桁架钢结构工程合肥滨湖国际会展中心二期首榀桁架滑移顺利完成合肥滨湖国际会展中心二期项目位于合肥市滨湖新区锦绣大道与广西路交口&#xff0c;该项目2#综合馆建筑面积约4.8万平方米&#xff0c…

IOS学习笔记之二十二(文件io)

1、NSData和NSMutableData和NSURL NSData和NSMutableData表示oc的数据缓冲区 作用: 1)、对数据读取NSData 2)、输出NSData的数据 NSURL可以读取网络数据 2、MSFileManager管理文件和目录 作用&#xff1a;创建文件、删除文件、复制文件、移动文件 3、NSFileHandle处理文件…

计算机网络的网络层功能在内完成,计算机网络习题及答案

第一章&#xff1a;1、市话网在数据传输期间&#xff0c;在源节点与目的节点之间有一条利用中间节点构成的物理连接线路。这种市话网采用技术。(B )A、报文交换B、电路交换C、分组交换D、数据交换2、一座大楼内的一个计算机网络系统&#xff0c;属于( B )A、PANB、LANC、MAND、…

冯巩经典语录

1、姑娘们啊&#xff01;哪有那麽多白马啊&#xff1f;找个驴凑合得了&#xff0c;别等到有一天驴都被抢没了&#xff0c;剩一堆骡子... 2、所谓美女&#xff0c;三分长相七分打扮、所谓气质&#xff0c;三分才气七分装蒜、所谓温柔&#xff0c;三分忍让七分压抑。 3、下辇子要…

IOS清理缓存的几种方法

IOS清理缓存的几种方法&#xff0c; - (long long) fileSizeAtPath:(NSString*) filePath{NSFileManager* manager [NSFileManager defaultManager];if ([manager fileExistsAtPath:filePath]){return [[manager attributesOfItemAtPath:filePath error:nil] fileSize];}retur…

【C#/.NET】不用AutoMapper,我用啥呢?

微信公众号&#xff1a;趣编程ACE关注可了解更多的.NET日常实战开发技巧。如需源码请后台留言源码;**[如果觉得对您有帮助&#xff0c;欢迎关注]TinyMapper简介本文来自社区群粉丝投稿TinyMapper是一个.NET平台下的一个轻量级对象映射工具&#xff0c;号称是.Net平台下最快的对…

大数据算法与分析技术国家工程实验室将建设

国家发展改革委近日正式下发通知&#xff0c;同意由西安交通大学作为承担单位&#xff0c;国家电网公司全球能源互联网研究院作为联合共建单位&#xff0c;筹建“大数据算法与分析技术国家工程实验室”。 国网信通部落实公司党组关于推进大数据的要求&#xff0c;组织联研院等单…

HBase键值分片的简单运用

1.基本原理介绍 HBase的存储是通过行键建立索引进行存储的&#xff0c;而且HBase只支持一级索引&#xff0c;因此只要通过行键才能很快的找到需要的数据。HBase是一个分布式的系统&#xff0c;HBase通过行键的分片&#xff0c;把不同的数据存储在不同的主机上。1).顺序分片依据…

我要3万取款机怎么取_7万的新宝骏RS-3怎么样?用车三个月后,车主说出了实话...

小型SUV领域&#xff0c;作为目前SUV市场之中竞争最激烈的细分领域之一&#xff0c;已经成为众多车企的必争之地。而正因如此&#xff0c;小型SUV市场所具有的车型非常的丰富&#xff0c;且其中更是一点也不缺爆款车型&#xff0c;正如在去年底刚上市的一款小型SUV——新宝骏RS…

大一python题库刷题训练_python实现合工大试题库自动刷题

1 #coding utf-8 2 importre3 importrequests4 importxlrd5 6 save_url "http://tkkc.hfut.edu.cn/student/exam/manageExam.do?1479131327464&methodsaveAnswer" 7 #index用于提示题目序号 8 index 1 9 headers {"User-Agent": "Mozilla/5.0…

MODIS数据说明

MODIS目前主要存在于两颗卫星上&#xff1a;TERRA和AQUA。TERRA卫星每日地方时上午10:30时过境&#xff0c;因此也把它称作地球观测第一颗上午星(EOS-AM1)。AQUA每日地方时下午过境&#xff0c;因此称作地球观测第一颗下午星(EOS-PM1)。两颗星相互配合&#xff0c;每1-2天可重复…

IOS学习笔记二十三对象归档(NSKeyedArchiver、NSKeyedUnArchiver、NSCodeing)

1、NSKeyedArchiver、NSKeyedUnArchiver 1&#xff09;、archiveRootObject:toFile 归档对象到这个路径文件 2&#xff09;、unarchiveObjectWithFile:从这个路径文件把对象进行恢复 对象归档这里我们可以理解Android里面的序列化&#xff0c;就是把对象保存到文件持久化&am…

.NET 为大型应用接入 ApplicationStartupManager 启动流程框架

对于大型的应用软件&#xff0c;特别是客户端应用软件&#xff0c;应用启动过程中&#xff0c;需要执行大量的逻辑&#xff0c;包括各个模块的初始化和注册等等逻辑。大型应用软件的启动过程都是非常复杂的&#xff0c;而客户端应用软件是对应用的启动性能有所要求的&#xff0…

6-子查询理解

单行子查询 1.查询工资比200号员工工资高的员工 分析&#xff1a; 比200号员工工资高,首先需要知道的是200号员工的工资,可以通过sql语句 SELECT SALARY FROM HR.EMPLOYEES WHERE EMPLOYEE_ID200;得到 然后需要的是写一条SQL语句:查询工资大于?的数据 SELECT * FROM HR.EMPLOY…

计算机文化教程实验基础知识,《计算机文化基础上机实验教程》孙家启、黄晓梅、刘奎 著_孔网...

《计算机文化基础上机实验教程》是安徽省高等学校“十一五”规划教材——《计算机文化基础教程》的配套实验教材。本教程共安排了19个实验&#xff0c;内容包括计算机基础知识(1个实验)、windows2000中文操作系统(3个实验)、中文文字处理软件Word2000(5个实验)、中文电子表格处…

思科为其核心网络业务增加了订阅服务

据国外媒体报道&#xff0c;思科系统公司的核心网络业务于周二开始进军订阅服务市场&#xff0c;其向大型企业宣布了一系列新的安全和自动化工具。 这个新的“直观网络”代表了思科如何从其旗舰业务中获得收入的重大变化。San Jose公司一直依赖于网络设备的销售&#xff0c;这些…

fpga map测试_一种基于SELECTMAP的可配置且高速的FPGA配置电路及实现方法与流程

本发明属于计算机工程领域&#xff0c;与SoC密切相关。具体涉及一种FPGA配置电路及实现方法。背景技术&#xff1a;随着大数据的发展&#xff0c;计算能力的提升&#xff0c;人工智能近两年迎来了新一轮的爆发。2016年谷歌AlphaGo赢得了围棋大战后&#xff0c;人工智能在产业界…