NSDictionary

不可变的字典

创建字典的方法

        // 创建字典的方式
NSDictionary *dy = [NSDictionary dictionaryWithObject:@"a"forKey:@"b"];
NSDictionary *dy1 = [NSDictionary dictionaryWithObjectsAndKeys:@"a",@"b",@"c",@"d" ,nil]; // 快速创建字典
// 重复key值,重复的不能保存到字典中
NSDictionary *dy2 = @{@"we":@"haha", @"we":@"ha"}; NSLog(@"%@",dy);
NSLog(@"%@",dy1);
NSLog(@"%@",dy2);

获取字典的长度

        // 获取字典长度
NSDictionary *dy2 = @{@"we":@"haha", @"w":@"ha"};
NSLog(@"%lu",dy2.count); // 输出2
// 如果key值重复,长度不计算在内
NSDictionary *dy2 = @{@"we":@"haha", @"we":@"ha"};
NSLog(@"%lu",dy2.count); //输出1

字典的遍历

        NSDictionary *dy1 = [NSDictionary dictionaryWithObjectsAndKeys:@"a",@"b",@"c",@"d" ,nil];

        // 快速创建字典
// 重复key值,重复的不能保存到字典中
NSDictionary *dy2 = @{@"we":@"haha", @"w":@"ha"};
NSLog(@"%lu",dy2.count); // 字典的遍历
for (NSString *key in dy2) {
NSLog(@"key = %@, value = %@", key, [dy2 objectForKey:key]);
}
// 枚举类型遍历
[dy1 enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) {
NSLog(@"key = %@, value = %@", key, obj);
}];

把字典存到文件中

        // 把字典保存到文件中
NSDictionary *dy2 = @{@"we":@"haha", @"w":@"ha"};
BOOL isWrite = [dy2 writeToFile:@"/Users/cloudwalk/Desktop/test.plist" atomically:YES];
if (isWrite) {
NSLog(@"写入成功");
}

从文件中读取字典

        NSDictionary *readDy2 = [NSDictionary dictionaryWithContentsOfFile:@"/Users/cloudwalk/Desktop/test.plist"];
NSLog(@"%@",readDy2);

通过把数组添加到字典中,构建成数组字典

        NSArray *sdArr = [NSArray arrayWithObjects:@"zaozhuang",@"jinan",nil];
NSArray *jxArr = [NSArray arrayWithObjects:@"jiujiang",@"nanchang",nil];
NSDictionary *citys = [NSDictionary dictionaryWithObjectsAndKeys:sdArr,@"sd",jxArr,@"jx", nil];
NSLog(@"citys = %@",citys);
        NSDictionary *citys = [NSDictionary dictionaryWithObjectsAndKeys:sdArr,@"sd",jxArr,@"jx", nil];
NSLog(@"citys = %@",citys);
// 把citys存到文件中
[citys writeToFile:@"/Users/cloudwalk/Desktop/test1.plist" atomically:YES];

NSMutableDictionay

    // 创建可变字典
NSMutableDictionary *dy1 = [NSMutableDictionary dictionary]; // 添加键值对
[dy1 setValue:@"lili" forKey:@"is"];
[dy1 setValue:@"heihei" forKey:@"hah"];
NSLog(@"%@",dy1); // 删除某个键值对
//[dy1 removeObjectForKey:@"is"];
NSLog(@"%@",dy1); // 快速修改键值对
dy1[@"is"] =@"xossk";
NSLog(@"%@",dy1); // 修改键值对
[dy1 setObject:@"xixi" forKey:@"is"];
NSLog(@"%@",dy1);

Objective-C( Foundation框架 一 NSDictionary (NSMutaleDictionary))的更多相关文章

  1. Objective - c Foundation 框架详解2

    Objective - c  Foundation 框架详解2 Collection Agency Cocoa provides a number of collection classes such ...

  2. Foundation框架--字典( NSDictionary NSMutableDictionary )

    基础知识 1.字典不允许相同的key,但允许有相同的value. 2,字典是无序的,字典不能排序. 3.字典里的内容是成对存在的,不会出现单数. 4.快速创建的方式只适合不可变字典. 不可变字典 #i ...

  3. [OC Foundation框架 - 10] NSDictionary

    通过唯一的key找到相应的value,类似于Map NSDictionary是不可变的   1.创建 void dicCreate() { //Immutable // NSDictionary *d ...

  4. OC中Foundation框架之NSDictionary、NSMutableDictionary

    NSDictionary概述 NSDictionary的作用类似:通过一个key ,就能找到对应的value 同样 NSDictionary是不可变的,一旦初始化完毕,里面的内容就无法修改 NSDic ...

  5. Foundation框架系列-NSDictionary

    排序 对字典中的key按照字母升序排序 // NOTE: 排序,得出最终请求字串 NSArray* sortedKeyArray = [[tmpDict allKeys] sortedArrayUsi ...

  6. Foundation框架之NSArray、NSDictionary、NSSet及其Mutable类型

    Foundation框架之NSArray.NSDictionary.NSSet及其Mutable类型 目录 概述——对Foundation框架集合类的理解 NSArray NSDictionary N ...

  7. OC学习篇之---Foundation框架中的NSDictionary类以及NSMutableDictionary类

    今天来看一下Foundation框架中的NSDictionary类,NSMutableDictionary类,这个和Java中的Map类很想,OC中叫字典,Java中叫Map,还有字典是无序的,这个和 ...

  8. Objective-C( Foundation框架 一 常见的结构体)

    常见的结构体 (NSPoint,CGPoint).(NSRange,CGRange).(NSSize,CGSize) 苹果官方推荐使用CG开头的结构体 NSRange是Foundation框架中常见的 ...

  9. 【IOS 开发】Objective-C Foundation 框架 -- 字符串 | 日期 | 对象复制 | NSArray | NSSet | NSDictionary | 谓词

    一. 字符串 API 1. NSString 用法简介 (1) NSString API 介绍 NSString 功能 : -- 创建字符串 : 使用 init 开头的实例方法, 也可以使用 Stri ...

随机推荐

  1. webpack配置技巧--路径

    resolve: { extensions: ['', '.js', '.vue'], fallback: [path.join(__dirname, '../node_modules')], ali ...

  2. div嵌套导致子区域margin-top失效不起作用的解决方法

    有两个嵌套关系的div,如果外层div的父元素padding值为0, 那么内层div的margin-top或者margin-bottom的值会"转移"给外层div,使父元素产生上外 ...

  3. 微信小程序实例

    看到小程序,那么火,自己也想动手写一个.但是没有很好的api接口.有一天看到一个开发安卓的朋友,写了一个干货集中营的小程序.就搜了一下.看到api是免费开放的.于是自己也动手写了一个. 具体的微信小程 ...

  4. MATLAB地图工具箱学习总结(三)地图工具箱的基本知识

    MATLAB地图工具箱学习总结(三)地图工具箱的基本知识 今天想要介绍的是一些比较基础的函数.了解了这些函数,地图投影的基本概念才能真正明白.而要想继续研究MATLAB中有关地图投影的函数,尤其是未来 ...

  5. Hibernate ManyToOne, OneToMany的理解

    User to Group, Many to One的关系 Test Case 1: session.beginTransaction(); user.setGroup(group); session ...

  6. Entity Framework 数据库初始化四种策略

    策略一:数据库不存在时重新创建数据库 Database.SetInitializer<testContext>(new CreateDatabaseIfNotExists<testC ...

  7. crontab Job权限重要

    在撰写JOb时,需要将SH目录及文件设为777,方可正常执行~

  8. Kinect外包团队(长年承接微软Kinect体感项目外包,有大型Kinect案例)

    承接Kinect体感企业项目.游戏项目外包 北京公司.专业团队,成员为专业WPF产品公司一线开发人员,有大型产品开发经验: 提供优质的售后服务,保证产品质量,轻量级产品可以提供规范清晰的源代码,有业务 ...

  9. javascript创建文档碎片节点

    在<javascript高级程序设计>一书的6.3.5:创建和操作节点一节中,介绍了几种动态创建html节点的方法,其中有以下几种常见方法: · crateAttribute(name): ...

  10. C语言程序设计进阶 第1周编程题

    第1周编程题 查看帮助 返回 依照学术诚信条款,我保证此作业是本人独立完成的. 温馨提示: 1.本次作业属于Online Judge题目,提交后由系统即时判分. 2.学生可以在作业截止时间之前不限次数 ...