oc75--不可变字典NSDictionary】的更多相关文章

// // main.m // NSDictionary // // #import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { // 1.如何创建 NSDictionary *dict1 = [NSDictionary dictionaryWithObject:@"lnj" forKey:@"name"]; NSString *name1 = [dict1 ob…
字典用于保存具有映射关系数据的集合 一个key—value对认为是一个条目(entry),字典是存储key—value对的容器 与数组不同,字典靠key存取元素 key不能重复,value必须是对象 键值对在字典中是无序存储的 字典分:不可变字典(NSDictionary)和可变字典(NSMutableDictionary) 不可变字典一旦创建,键值对就不可更改,不可添加,不可删除,仅能读取key或者value 常用方法有: 1.创建字典对象 2.获取所有key值,获取所有value值 3.通过…
字典是以键值对的形式来存储数据 key value 1 NSDictionary 字典 1.1 创建字典,不可变的 NSDictionary * dic = [NSDictionary dictionaryWithObjectsAndKeys:@"xiaozhe",@"name", nil]; NSLog(@"dic %@",dic); 2016-08-14 14:44:17.460 07-字典类[2325:547877] dic { name…
做过Java语言 或者 C语言 开发的朋友应该很清楚 关键字map 吧,它可以将数据以键值对儿的形式储存起来,取值的时候通过KEY就可以直接拿到对应的值,非常方便.在Objective-C语言中 词典对象就是做这个事情的,不过在同一个词典对象中可以保存多个不同类型的数据,不像Java与C 只能保存声明的相同类型的数据,它的关键字为NSDictionary与NSMutableDictionary.阅读过我之前文章的朋友应该从关键字的 结构就可以看出这两个的区别.很明显前者为不可变词典,或者为可变词…
基础知识 1.字典不允许相同的key,但允许有相同的value. 2,字典是无序的,字典不能排序. 3.字典里的内容是成对存在的,不会出现单数. 4.快速创建的方式只适合不可变字典. 不可变字典 #import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { /***************************必需要掌握的知识********************…
 1 #pragma mark *****************************字典********************************  2 //        字典:通过key来取值的 key值必须是成对出现的,key不能为空(nil)  3         NSDictionary *dic = [NSDictionary dictionaryWithObjectsAndKeys:@"object",@"key",@"objec…
1. 字典类型的常用处理 //---------------不可变字典 //1.字典的创建 NSArray *array1 = [NSArray arrayWithObjects:@"zhangsan",@"zhangfei",nil]; NSArray *array2 = [NSArray arrayWithObjects:@"lisi",@"liping", nil]; //第一元素:key:@“zhang"  …
OC基础 可变字典与不可变字典的使用 1.不可变字典 1.1创建不可变字典 //创建字典 //注意: //1,元素个数是偶数 //2,每两个元素是一个键值对 //3,值在前,键在后 NSDictionary *dic = [[NSDictionary alloc] initWithObjectsAndKeys:",@"age", nil]; NSLog(@"%@",dic); //用一个字典来创建另外一个字典 NSDictionary *dic2 = [[…
字典相当于c++ stl中的map 字典NSDictionary #import <UIKit/UIKit.h> #import "AppDelegate.h" int main(int argc, char * argv[]) { // 从@符号创建字典 实际上就是键值对容器 NSDictionary *dict = @{@"name":@"zhangsan",@"sex":@"male"};…
//key 和 value 都属于(id)对象类型 //key常用字符串NSString来表示 //存储数值型 一般可用 NSString //int  age ->@(age) //  [dic[name] intValue]; //   @()-->转成NSNumber 类型 //     intValue //value可以使任意对象(NSString  NSArrray , dog  ) //NSDictionary 一旦创建不能修改增加删除 #pragma mark 字典的创建 NS…
简介:字典是一种数据结构,字典里面的每一个元素,是一个key-value(键值对),key和value都是对象类型.同NSArray一样,里面的对象不用保持一致性. NSDictionary 1.字面量初始化 // 存储时时无序的 NSDictionary *dict = @{"}; // 打印时根据Unicode码排序打印 NSLog(@"%@", dict); 2.实例方法初始化 NSDictionary *dict = [[NSDictionary alloc] ini…
========================== 字典 ========================== NSDictionary * dict = [[NSDictionary alloc] initWithObjectsAndKeys:@"One", @"1", @"Two", @"2", @"Three", @"3", @"One",  @"4…
存到nsuesrDefault里面一个可变字典,然后用一个可变字典去接收. NSMutableDictionary *dic = [[NSUserDefaults standardUserDefaults]valueForKey:@"name"]: 但是你再给其赋值的时候  [dic setValue:@"" forKey:@""]; 你就会发现崩溃了. 这个问题其实就在于赋值的时候 因为你从userDefault中取值的时候这里面的对象会默认成…
iOS开发--字典(NSDictionary)和JSON字符串(NSString)之间互转 1. 字典转Json字符串 // 字典转json字符串方法 -(NSString *)convertToJsonData:(NSDictionary *)dict { NSError *error; NSData *jsonData = [NSJSONSerialization dataWithJSONObject:dict options:NSJSONWritingPrettyPrinted error…
这周最大的收获是稍稍通透了 多线程安全字典的重要性.  诱因是,发现了有字典坏地址错误      果断以为是 value 或者 key 是可能出现了空值,补充了潜在的判断,虽然有的位置已经预判断的,但是真正赋值的时候并没判断呀,补充上了. 这种问题线下时候,我们基本0复现,所以迭代一个版本用户检验的时候还是报这个错误,不是那种坑坑一直报错势不可挡的bug,但是是很有生命力的bug,不多 还能定位到具体的一行代码.   这就让我很困惑了,怎么回事?? key,value 都保证是合法的了,怎么还是…
python inmutabledict的实现 关于在python中如何实现不可变字典的方法.早在pep416中,就建议python官方实现inmutabledict,但是官方否认了.理由主要是 根据Raymond Hettinger的说法,使用frozendict很愚蠢. 那些使用它的人倾向于仅将它用作提示,例如声明全局或类级别的"常量":它们实际上不是永久不变的,因为任何人仍然可以指定名称. There are existing idioms for avoiding mutabl…
字典中的元素是以键值对的形式存储的,键值对的键和值,都是任意的对象,但是键往往使用字符串,字典存储对象的地址没有顺序,字典的遍历分为:键的遍历和值的遍历,字典与数组的区别:数组讲究顺序,而字典可以快速帮助我们找到数据,数据是我们的目的,键是我们的手段;其中NSMutableDictionary是NSDictionary的子类,所以其拥有NSDictionary所有的功能:主要是一些常见的操作,别外一些操作见其相应的文档,下面的代码部分还运用的第三方插件BlocksKit相结合: a:NSDict…
目标:把NSDictionary对象转换成NSMutableDictionary对象,对象内容是字符串数组,需要实现完全复制(深复制). 如果调用NSDictionary的mutableCopy方法,可以得到一个NSMutableDictionary对象,但这只是浅复制,如果我们修改NSDictionary中数组内的值(当然,数组必须是NSMutableArray),会发现,NSMutableDictionary对象内数组的值也跟着更改了.我们需要增加一个mutableDeepCopy方法来实现…
// 动态获取字典的第一个典 NSString *firstKey = responseObject.keyEnumerator.nextObject;…
NSArray.NSMutableArray.NSDictionary.NSMutableDictionary.是我们的在iOS开发中非常常用的类.当然,在享受这些类的便利的同时,它们也给我们带来一些困扰.粗心我们可能会调用addObject:传入一个nil, 也有可能是会objectAtIndex:传入一个越界的index.尤其是在数据基本依赖于服务端返回的的情况,这种crash大幅增加.最近项目上经常出现NSDictionary的setObject:forKey:的nil object的崩溃…
NSDictionary与NSMutableDictionary NSSet与NSMutableSte 字典 字典:字典分为可变字典NSDictionary和不可变字典NSMutableDictionary.字典中的数据都是以键值对的形式保存的,键和值可以是任何对象,一般使用字符串作为键. 使用字典可以大大提高我们编程的效率,下面让我们看一个用字典表示乐曲信息的例子.表示乐曲信息的结构基本都是一样的,但也有个别乐曲有所不同,例如有的乐曲的作者是多个人,有的乐曲有参考信息等. 图(a)中,每个框包…
/*=============================NSDictionary(不可变字典)的使用=========================*/ //————————————————————————————————字典的创建———————————————————————————————— // 前面的是值(value),后面的是键(key),一一对应 // 方式一: NSDictionary *dic = [[NSDictionary alloc] initWithObjects…
一.数组.  数组只能存放对象类型的数据  2.数组中的对象是有序的 (index)     (一)可变数组   NSArray:NSObject  不可变数组 作用:容器类 存放的是对象类型的数据,不可变数组,创建的时候是什么样就是什么样,不能对数组做插入.修改.删除等操作.       1.存数据         NSArray *arr1 =[[NSArray alloc]initWithObjects:@"zhangSan",@"liSi",@"小…
==============NSArray(不可变数组)=========== NSArray,继承自NSObject  用来管理(储存)一些有序的对象,不可变数组. 创建一个空数组 NSArray *array1=[[NSArray alloc]init];               //NSArray *array2=[NSArray array]; nil   数组结束标志 NSArray *array3=[[NSArray alloc]initWithObjects:@"rose&qu…
字符串 //取子字符串 NSString *str1=@"今天的猪肉真贵,200块一斤"; NSString *sub1=[str1 substringFromIndex:4]; NSLog(@"%@",sub1);//肉真贵,200块一斤 //区间 NSRange ran=NSMakeRange(3, 2); NSString *sub2=[str1 substringWithRange:ran]; NSLog(@"%@",sub2);//猪肉…
1.数组类 1> 回顾C语言数组 数组是一个有序的集合, 来存储相同数据类型的元素. 通过下标访问数组中的元素,下标从 0 开始. 2> 数组 数组是一个有序的集合,OC中的数组只能存储对象类型, 但是对于对象的类型没有限制. 通过 开始. NSArray:不可变数组,即:对象创建好以后,数组中元素个数不能发生变化. NSMutableArray:可变数组,即对象创建好以后,数组中的元素可以灵活进行增删改操作. 3> NSArray创建 ① 初始化方法 NSArray *names =…
下面详细的介绍Objective-C中的集合类以及每个集合类的用法,学过其他面向对象编程语言的小伙伴们看到OC的集合类会有种莫名的亲切感,理解起来问题不大,可以类比Java中的集合类去学习. 在Objective-C中的集合类中主要包括不可变的数组--NSArray,  可变的数组--NSMutableArray,   不可变的字典--NSDictionary,    可变的字典--NSMutableDictionary, 不可变的集合--NSSet,可变的集合--NSMutableSet. 一…
// //  main.m //  aa // //  Created by rcfwzx on 15/11/20. //  Copyright (c) 2015年 rcfwzx. All rights reserved. // #import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { NSString *a=@"jjkkllFDSFDaqt"…
一.数组类      1.C语言数组的特点:数组是一个有序的集合,用来存储相同数据类型的元素,通过下标访问数组中的元素,下标从0开始.      2.OC中的数组只能存储对象类型(必须是NSObject对象),但是对于对象的类型没有限制.           1)通过下标访问数组元素,下标从0开始.           2)NSArray:不可变数组,即:对象创建好以后,数组中元素个数不能发生变化.           3)NSMutableArray:可变数组,即:对象创建好以后,数组中的元素…