《慕客网:IOS基础入门之Foundation框架初体验》学习笔记 <五> NSDicionary + NSMutableDictionary
 int main(int argc, const char * argv[]) {
     @autoreleasepool {
         //字典, 存储的内存不是连续的 用key和value进行对应(键值)
         //kvc 键值编码
         NSDictionary *dic = [NSDictionary dictionaryWithObject:@"" forKey:@"a"];
         NSLog(@"%@",dic);//以上的方法是不常用的
         //注意两个参数是数组
         //NSDictionary *dic2 = [NSDictionary dictionaryWithObjects:<#(NSArray *)#> forKeys:<#(NSArray *)#>]
         //所以还是要先创建两个数组
         NSArray *array1 = [[NSArray alloc] initWithObjects:@"a",@"b",@"c",@"d", nil];
         NSArray *array2 = [[NSArray alloc] initWithObjects:@"",@"",@"",@"", nil];
         NSDictionary *dic2 = [[NSDictionary alloc] initWithObjects:array1 forKeys:array2];
         NSLog(@"%@",dic2);
         //
         NSDictionary *dic3 = @{@"m":@"",@"n":@""};
         NSLog(@"%@",dic3);
         //输出字典的长度
         int count = (int)[dic3 count];
         NSLog(@"%d",count);
         //通过键 获得 值
         NSString *str = [dic3 valueForKey:@"m"];//或者[dic3 objectForKey:@"m"]
         NSLog(@"%@",str);
         //获取所有键值中的键和值
         NSArray *allValue = [dic3 allValues];
         NSArray *allKey = [dic3 allKeys];
         //通过多个键找值,因为是多个,当然返回的是数组
         NSArray *array = [dic2 objectsForKeys:[NSArray arrayWithObjects:@"",@"",@"", nil] notFoundMarker:@"not found"];
         NSLog(@"%@",array);
         //遍历字典,数组通过下标遍历,字典当然通过key来遍历
         for (NSString *key in dic2) {
             NSLog(@"%@ = %@",key,[dic2 objectForKey:key]);
         }
         //使用针对字典的枚举器
         NSEnumerator *en = [dic2 keyEnumerator];
         id key = nil;
         while (key = [en nextObject]) {
             NSLog(@"key - %@",key);
         }
         //还有一个block方法,用法都是一样的
         /*
         [dic2 enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) {
         }];*/
     }
     return ;
 }
 int main(int argc, const char * argv[]) {
     @autoreleasepool {
         NSMutableDictionary *dict = [[NSMutableDictionary alloc] init];
         //添加键值对,直接添加就可以了
         [dict setObject:@"" forKey:@"a"];
         [dict setObject:@"" forKey:@"b"];
         [dict setObject:@"" forKey:@"c"];
         NSLog(@"%@",dict);
         //删除键值对
         [dict removeObjectForKey:@"a"];
         NSLog(@"%@",dict);
         //还可以通过传入数组对象,对应删除数组元素对应的所有键
         [dict removeObjectsForKeys:[NSArray arrayWithObjects:@"a",@"c", nil]];
         NSLog(@"%@",dict);
     }
     return ;
 }
《慕客网:IOS基础入门之Foundation框架初体验》学习笔记 <五> NSDicionary + NSMutableDictionary的更多相关文章
- IOS基础之 (九) Foundation框架
		
一NSNumber 类型转换 NSNumber 把基本数据类型包装成一个对象类型.NSNumber之所以可以(只能)包装基本数据类型,是因为继承了NSValue. @20 等价于 [NSNumber ...
 - IOS基础之 (八) Foundation框架
		
一 常用类 NSRange 范围,NSPoint 点,NSSize /CSSize 大小,CGRect 1 NSRange 1)NSRange是一种C语言结构用来帮助描述一系列的条款,包括一个起点位 ...
 - iOS与Html5和JS之间的交互---学习笔记五
		
首先采用的框架是WebViewJavascriptBridge,采用这套框架可以方便的使iOS与JS交互 一. 流程图(主要介绍思路) 二.iOS端如何使用 首先导入#import "Web ...
 - iOS 基础入门--Bull' Eye 小游戏 
		
  说明   Bull's Eye小游戏是http://www.raywenderlich.com/store/ios-apprentice里非常酷的入门demo 跟着该教程一步步做下来便有了 ...
 - iOS 基础函数解析 - Foundation Functions Reference
		
iOS 基础函数解析 - Foundation Functions Reference 太阳火神的漂亮人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名- ...
 - [置顶] IOS 基础入门教程
		
IOS 基础入门教程 教程列表: IOS 简介 IOS环境搭建 Objective C 基础知识 创建第一款iPhone应用程序 IOS操作(action)和输出口(Outlet) iOS - 委托( ...
 - 《python基础教程(第二版)》学习笔记 文件和素材(第11章)
		
<python基础教程(第二版)>学习笔记 文件和素材(第11章) 打开文件:open(filename[,mode[,buffering]]) mode是读写文件的模式f=open(r' ...
 - 《python基础教程(第二版)》学习笔记 类和对象(第7章)
		
<python基础教程(第二版)>学习笔记 类和对象(第7章) 定义类class Person: def setName(self,name): self.name=n ...
 - 《python基础教程(第二版)》学习笔记 函数(第6章)
		
<python基础教程(第二版)>学习笔记 函数(第6章) 创建函数:def function_name(params): block return values 记录函数:def f ...
 
随机推荐
- 流行趋势:25款很酷的长阴影效果 LOGO 设计
			
长阴影其实就是扩展了对象的投影,感觉是一种光线照射下的影子,通常采用角度为 45 度的投影,给对象添加了一份立体感.长阴影(Long Shadow)概念来自于最新非常流行的扁平化设计(Flat Des ...
 - Android开发总结
			
出来工作半年多了,没啥好交代的,就说说自己半年来的Android开发经历. 1.IDE 这半年来,从Eclipse到Android Studio,经历了两个IDE,在这里做一下简单的评价. ...
 - jquery.idTabs使用方法
			
idTabs是基于Jquery编写封装的一个插件,主要用于实现选项卡功能,它操作简单,只需到官网:http://www.sunsean.com/idTabs/下载插件JS脚本文件,并引用到网站中即可 ...
 - 代码规范之争——[个人Week2作业]
			
这四个问题均是出自 http://goodmath.scientopia.org/2011/07/14/stuff-everyone-should-do-part-2-coding-standards ...
 - 用Qt写软件系列二:QCookieViewer(浏览器Cookie查看器)
			
预备 继上篇<浏览器缓存查看器QCacheViewer>之后,本篇开始QCookieViewer的编写.Cookie技术作为网站收集用户隐私信息.分析用户偏好的一种手段,广泛应用于各大网站 ...
 - Windows 8.1 去掉库的方法
			
Windows 8.1[这台电脑], 里面又多了[文件夹]分类,真是各种不习惯 删除方法: 打开注册表, 找到 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Wind ...
 - 如何手动让HttpRequestBase.IsAuthenticated 和 HttpContext.User.Identity.IsAuthenticated 为true.
			
今天为了重写权限验证这块需要重写AuthorizeAttribute 这个属性,看了官方文档:HttpContextBase.User.Identity.IsAuthenticated 这个必须是tr ...
 - jquery ajax跨域访问webservice配置
			
1.webservice方法 [System.Web.Script.Services.ScriptService] public class TestService : System.Web.Serv ...
 - 【jQuery基础学习】11 jQuery性能简单优化
			
关于性能优化 合适的选择器 $("#id")会直接调用底层方法,所以这是最快的.如果这样不能直接找到,也可以用find方法继续查找 $("p")标签选择器也是直 ...
 - 360 webscan中防注入跨站攻击的核心
			
//get拦截规则 $getfilter = "\\<.+javascript:window\\[.{1}\\\\x|<.*=(&#\\d+?;?)+?>|< ...