博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
oc中字典的实现方法详解
阅读量:4994 次
发布时间:2019-06-12

本文共 2119 字,大约阅读时间需要 7 分钟。

一:字典的基本概念

Foundation中的字典(NSDictionary,NSMutableDictionary)是由键-值对组成的数据集合.正如,我们在字典里查找单词的定义一样.

通过key(键),查找的对应的value(值),key通常是字符串对象,也可以是其他任意类型对象.在一个字典对象中,key的值必须是唯一的.

此外,字典对象的键和值不可以为空(nil),如果需要在字典中加入一个空值,可以加入NSNull对象

二:不可变字典-NSDictionary

1:初始化(以一个元素和多个元素进行初始化):

//以一个键值对象 进行初始化

NSDictionary *dic=[NSDictionary dictionaryWithObject:@"卢灿小样" forKey:@"lucan"];     NSLog(@"%@",dic);     NSLog(@"%@",[dic objectForKey:@"lucan"]);    //输出dic键值对个数    NSLog(@"%d",dic.count);        //用多种方法创建键值对    NSDictionary *dic1=[NSDictionary dictionaryWithObject:@"卢灿实验2号" forKey:@"小样"];    NSLog(@"%@",[dic1 objectForKey:@"小样"]);        NSDictionary *dic2=@{
@"first":@"2301",@"sec":@"2034"}; NSDictionary *dic3=[NSDictionary dictionaryWithObjectsAndKeys:@"刘湘",@"name",@"小样",@"name1", nil]; //输出结果 NSLog(@" ----%@%@",dic2,dic3); //数组把vaule和key放到一个可变数组 NSArray *values=@[@123,@668,@345]; NSArray *key=@[@"first",@"swcond",@"third"]; NSDictionary *dic4=[NSDictionary dictionaryWithObject:values forKey:key]; NSLog(@"xxxxxxxxxxxx%@",dic4); //排序 NSArray *arry=[dic4 keysSortedByValueUsingSelector:@selector(compare:)]; NSLog(@"+++++++%@",arry); //用一个现有字典对象初始化另一个新字典对象(创建可变对象) NSDictionary *arry1=[[NSDictionary alloc]initWithDictionary:dic4 ]; NSLog(@"ooooooo%@",arry1); //保存对象到内容文件 NSString *path=@"/Users/apple/Desktop/test.plist"; [dic2 writeToFile:path atomically:YES]; //从以前保存的文件读取到字典对象 NSDictionary *data=[NSDictionary dictionaryWithContentsOfFile:path]; NSLog(@"xxxxx%@",data); //字典的遍历key1相当于a[i]中的i,dic4就自己定义的字典 for (id key1 in dic4) { id vaule=[dic4 objectForKey:key1]; NSLog(@"qqqqqq%@%@",key,vaule); } //- (void)removeObjectForKey:(id)aKey; //删除键值对 NSMutableDictionary *dic7=[NSMutableDictionary dictionaryWithDictionary:dic2]; [dic7 removeObjectForKey:@"sec"]; NSLog(@"%@",dic7); // 判断key值有就替换没有就添加 [dic7 setObject:@"3412" forKey:@"sec"]; NSLog(@"%@",dic7); //增加dic4 字典无顺序 [dic7 addEntriesFromDictionary:dic4]; NSLog(@"%@",dic7);

 

转载于:https://www.cnblogs.com/liuxiang520/p/3883677.html

你可能感兴趣的文章
如何用Java实现反转排序
查看>>
Leetcode-911 Online Election(在线选举)
查看>>
自己动手写字符串库函数 一(C语言实现) 分类: C语言学习 ...
查看>>
说说接口封装
查看>>
Linux Supervisor的安装与使用入门---SuSE
查看>>
C#将Word转换成PDF方法总结(基于Office和WPS两种方案)
查看>>
oracle查锁表
查看>>
PHP SSH2 不支持 IdentityFile
查看>>
eclipse 僵死/假死 问题排查及解决
查看>>
番茄时间
查看>>
四位计算机的原理及其实现【转】
查看>>
mediawiki简易安装文档
查看>>
Ubuntu server 命令备忘
查看>>
yum常用操作
查看>>
MES系统框架及MES开源框架|C/S框架网软著产品
查看>>
以boost::function和boost:bind取代虚函数
查看>>
linux 下启动SVN服务
查看>>
vue框架学习
查看>>
现代计算机接口实验 (三)8255实验
查看>>
spring——获取ClassLoader
查看>>