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的更多相关文章

  1. IOS基础之 (九) Foundation框架

    一NSNumber 类型转换 NSNumber 把基本数据类型包装成一个对象类型.NSNumber之所以可以(只能)包装基本数据类型,是因为继承了NSValue. @20 等价于 [NSNumber ...

  2. IOS基础之 (八) Foundation框架

    一 常用类 NSRange 范围,NSPoint  点,NSSize /CSSize 大小,CGRect 1 NSRange 1)NSRange是一种C语言结构用来帮助描述一系列的条款,包括一个起点位 ...

  3. iOS与Html5和JS之间的交互---学习笔记五

    首先采用的框架是WebViewJavascriptBridge,采用这套框架可以方便的使iOS与JS交互 一. 流程图(主要介绍思路) 二.iOS端如何使用 首先导入#import "Web ...

  4. iOS 基础入门--Bull' Eye 小游戏 

      说明   Bull's Eye小游戏是http://www.raywenderlich.com/store/ios-apprentice里非常酷的入门demo 跟着该教程一步步做下来便有了 ...

  5. iOS 基础函数解析 - Foundation Functions Reference

    iOS 基础函数解析 - Foundation Functions Reference 太阳火神的漂亮人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名- ...

  6. [置顶] IOS 基础入门教程

    IOS 基础入门教程 教程列表: IOS 简介 IOS环境搭建 Objective C 基础知识 创建第一款iPhone应用程序 IOS操作(action)和输出口(Outlet) iOS - 委托( ...

  7. 《python基础教程(第二版)》学习笔记 文件和素材(第11章)

    <python基础教程(第二版)>学习笔记 文件和素材(第11章) 打开文件:open(filename[,mode[,buffering]]) mode是读写文件的模式f=open(r' ...

  8. 《python基础教程(第二版)》学习笔记 类和对象(第7章)

    <python基础教程(第二版)>学习笔记 类和对象(第7章) 定义类class Person:    def setName(self,name):        self.name=n ...

  9. 《python基础教程(第二版)》学习笔记 函数(第6章)

    <python基础教程(第二版)>学习笔记 函数(第6章) 创建函数:def function_name(params):  block  return values 记录函数:def f ...

随机推荐

  1. 用户授权 OAuth 2.0

    什么是OAuth OAuth是一个关于授权(Authorization)的开放网络标准,目前的版本是2.0版.OAuth适用于各种各样的包括提供用户身份验证机制的应用程序,注意是Authorizati ...

  2. [Math] Deferred Acceptance Algorithm

    约会配对问题 一.立即接受算法: 对于约会的配对,大家都去追自己最心仪的女生.而这个女生面对几位追求者,要立刻做个决定. 被拒绝的男生们调整一下心情,再去追求心中的 No. 2.以此类推. 这样做法有 ...

  3. Mysql学习笔记(三)运算符和控制流函数

    本章学习内容: 1.操作符 2.控制流程函数 操作符: i.圆括号.. 简单的介绍一下圆括号,圆括号的使用的目的是规定计算表达式的顺序...这个想必大家都熟悉例如  mysql>select 1 ...

  4. 缓存池扩展 (Buffer Pool Extension)实践

    SQL Server 2014缓存池扩展 (Buffer Pool Extension)功能可以将缓存池扩展到较快的SSD存储上.为内存比较紧张的系统提供了新的扩展途径. Buffer Pool 扩展 ...

  5. Ioc原理及常用框架

    1 IoC理论的背景    我们都知道,在采用面向对象方法设计的软件系统中,它的底层实现都是由N个对象组成的,所有的对象通过彼此的合作,最终实现系统的业务逻辑.  图1:软件系统中耦合的对象 如果我们 ...

  6. ActiveMQ学习(三)——MQ的通讯模式

    1) 点对点通讯:点对点方式是最为传统和常见的通讯方式,它支持一对一.一对多.多对多.多对一等多种配置方式,支持树状.网状等多种拓扑结构. 2) 多点广播:MQ适用于不同类型的应用.其中重要的,也是正 ...

  7. Android开发权威指南(第2版)新书发布

    <Android 开发权威指南(第二版)>是畅销书<Android开发权威指南>的升级版,内容更新超过80%,是一本全面介绍Android应用开发的专著,拥有45 章精彩内容供 ...

  8. WatiN框架学习二——对弹窗的处理

    以IE为例,WatiN处理弹出窗口: IE ie = new IE("string"); //打开指定web页 ie.Button(Find.ById("string&q ...

  9. [C#] 可空类型的实现原理

    int? 是可为null的值类型.只比int多一个值就是null. 思考: 同样的内存空间,怎么实现的多一个值的?都是4字节,32位,int?靠什么存在一个null值的. 发现: 分析一下内存,看看如 ...

  10. ASP.NET MVC使用input标签上传文件

    有些时间学习了,温习一下ASP.NET MVC了.上传文档是在开发过程中,必须撑握的一个功能.以前上传均是使用第三方控件uploadify来实现,今天使使用VS标准标签input 的type=&quo ...