[OC Foundation框架 - 10] NSDictionary
通过唯一的key找到相应的value,类似于Map
void dicCreate()
{
//Immutable
// NSDictionary *dic = [NSDictionary dictionary]; NSDictionary *dic = [NSDictionary dictionaryWithObject:@"Simon" forKey:@"name"]; dic = [NSDictionary dictionaryWithObjectsAndKeys:@"v1", @"k1", @"v2", @"k2", nil]; NSArray *objs = [NSArray arrayWithObjects:@"v1", @"v2", @"v3", nil];
NSArray *keys = [NSArray arrayWithObjects:@"k1", @"k2", @"k3", nil];
dic = [NSDictionary dictionaryWithObjects:objs forKeys:keys]; NSLog(@"%@", dic); }
NSDictionary *d11_1 = @{@"姓名":@"张三", @"年龄":@"", @"性别":@"男"};
void dicUse()
{
NSArray *objs = [NSArray arrayWithObjects:@"v1", @"v2", @"v3", nil];
NSArray *keys = [NSArray arrayWithObjects:@"k1", @"k2", @"k3", nil];
NSDictionary *dic = [NSDictionary dictionaryWithObjects:objs forKeys:keys]; NSLog(@"%@", [dic objectForKey:@"k1"]);
} void dicUse2()
{
NSArray *objs = [NSArray arrayWithObjects:@"v1", @"v1", @"v2", nil];
NSArray *keys = [NSArray arrayWithObjects:@"k1", @"k2", @"k3", nil];
NSDictionary *dic = [NSDictionary dictionaryWithObjects:objs forKeys:keys]; NSArray *keys2 = [dic allKeys];
NSLog(@"%@", keys2); NSArray *keys3 = [dic allKeysForObject:@"v1"];
NSLog(@"%@", keys3); NSArray *objs2 = [dic objectsForKeys:[NSArray arrayWithObjects:@"k1",@"k2",@"k4",nil] notFoundMarker:@"not found"];
NSLog(@"%@", objs2);
}
void dicLoop()
{
NSArray *objs = [NSArray arrayWithObjects:@"v1", @"v2", @"v3", nil];
NSArray *keys = [NSArray arrayWithObjects:@"k1", @"k2", @"k3", nil];
NSDictionary *dic = [NSDictionary dictionaryWithObjects:objs forKeys:keys]; //Loop all keys in dictionary
for (id key in dic)
{
id value = [dic objectForKey:key];
NSLog(@"%@ = %@", key, value);
}
}
void dicEnumerator()
{
NSArray *objs = [NSArray arrayWithObjects:@"v1", @"v2", @"v3", nil];
NSArray *keys = [NSArray arrayWithObjects:@"k1", @"k2", @"k3", nil];
NSDictionary *dic = [NSDictionary dictionaryWithObjects:objs forKeys:keys]; //key enumerator
NSEnumerator *enumerator = [dic keyEnumerator];
id key =nil;
while (key = [enumerator nextObject])
{
id value = [dic objectForKey:key];
NSLog(@"%@ = %@", key, value);
}
}
void dicBlockLoop()
{
NSArray *objs = [NSArray arrayWithObjects:@"v1", @"v2", @"v3", nil];
NSArray *keys = [NSArray arrayWithObjects:@"k1", @"k2", @"k3", nil];
NSDictionary *dic = [NSDictionary dictionaryWithObjects:objs forKeys:keys]; [dic enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) {
NSLog(@"%@ - %@", key, obj);
}];
}
void memoryManage()
{
Student *stu1 = [Student studentWithName:@"Simon"];
Student *stu2 = [Student studentWithName:@"Joke"];
Student *stu3 = [Student studentWithName:@"Man"];
NSDictionary *dic = [NSDictionary dictionaryWithObjectsAndKeys:stu1,@"stu1",
stu2, @"stu2",
stu3, @"stu3", nil]; //When dictionary is destroyed, the keys & objects will be released one time
NSLog(@"stu1 before dic release:%zi", stu1.retainCount);
}
NSArray *da = [d allKeys];
NSLog(@"%@", d[@""]);
NSMutableDictionary *d = [NSMutableDictionary dictionary];
for (int i=; i<; i++)
{
[d setObject:@"abc" forKey:[NSString stringWithFormat:@"%d", i]];
} NSLog(@"%@", d);
0 = abc;
1 = abc;
10 = abc;
11 = abc;
[OC Foundation框架 - 10] NSDictionary的更多相关文章
- OC Foundation框架—集合
Foundation框架—集合 一.NSArray和NSMutableArray (一)NSArray不可变数组 (1)NSArray的基本介绍 NSArray是OC中使用的数组,是面向对象的,以面向 ...
- iOS - OC Foundation 框架
前言 框架是由许多类.方法.函数和文档按照一定的逻辑组织起来的集合,以使研发程序更容易. Foundation 框架:为所有程序开发奠定基础的框架称为 Foundation 框架. Cocoa :是指 ...
- OC Foundation框架—结构体
一.基本知识 Foundation—基础框架.框架中包含了很多开发中常用的数据类型,如结构体,枚举,类等,是其他ios框架的基础. 如果要想使用foundation框架中的数据类型,那么包含它的主头文 ...
- OC Foundation框架—字符串
一.Foundation框架中一些常用的类 字符串型: NSString:不可变字符串 NSMutableString:可变字符串 集合型: 1) NSArray:OC不可变数组 NSMutableA ...
- OC中Foundation框架之NSDictionary、NSMutableDictionary
NSDictionary概述 NSDictionary的作用类似:通过一个key ,就能找到对应的value 同样 NSDictionary是不可变的,一旦初始化完毕,里面的内容就无法修改 NSDic ...
- OC — (Foundation框架-NSDate)
NSDate:是OC中处理日期时间的一个类,可以用来表示时间 获取当前的时间 NSDate *d = [NSDate date]; 创建日期时间对象 NSLog输出是当前时间 格林时间 格式化显示时间 ...
- Foundation框架--字典( NSDictionary NSMutableDictionary )
基础知识 1.字典不允许相同的key,但允许有相同的value. 2,字典是无序的,字典不能排序. 3.字典里的内容是成对存在的,不会出现单数. 4.快速创建的方式只适合不可变字典. 不可变字典 #i ...
- [OC Foundation框架 - 23] 文件管理
A. 目录管理 NSFileManager*manager = [NSFileManagerdefaultManager];//单例模式 // 1.获取文件属性 NSString *path = @& ...
- [OC Foundation框架 - 20] 统计代码行数
注意: 1.变量名和函数名不要混淆调用 2.不要对文件夹进行文件的操作,没有权限 3.递归调用注意初始化变量 // // main.m // CodeLineCount // // Created ...
随机推荐
- 【转】VMware设置共享文件夹之后Ubuntu中看不到怎么办?
一.共享文件夹设置好了,但是在虚拟机中的Ubuntu系统下却看不到,怎么办? 一种可能的原因是系统没有自动挂载,解决办法: 1.安装: sudo apt-get insta ...
- js 实现list类
js中没有list类,可以使用Array来实现list类 (function(win) { var ArrayList = function() { this.datas = []; }; var p ...
- Qt: 自动调整到最合适的大小(不是很明白)
SortDialog::SortDialog(QWidget *parent) : QDialog(parent) { setupUi(this); groupBox_2->hide(); gr ...
- Android:requestWindowFeature应用程序窗体显示状态操作
注意requestWindowFeature必须在 setContentView()之前调用. 1.DEFAULT_FEATURES:系统默认状态,一般不需要指定 2.FEATURE_CONTEXT_ ...
- Android Paint中setTextSize
界面适配的时候发现Paint.setTextSize与TextView.setTextSize传入的单位不一致.Paint.setTextSize传入的单位是px,TextView.setTextSi ...
- (转)CSS+DIV float 定位
来自:http://www.cnblogs.com/iyangyuan/archive/2013/03/27/2983813.html 很早以前就接触过CSS,但对于浮动始终非常迷惑,可能是自身理解能 ...
- forks rate异常
一.收到nagios Current_load报警短信
- java学习面向对象之匿名内部类
之前我们提到“匿名”这个字眼的时候,是在学习new对象的时候,创建匿名对象的时候用到的,之所以说是匿名,是因为直接创建对象,而没有把这个对象赋值给某个值,才称之为匿名. 匿名对象回顾: class N ...
- UML中关系图解
转自http://blog.csdn.net/duran1986/article/details/5573415 最近在教软件工程项目实践,就又仔细了解了下UML中各种关系的意义,虽然有点简单,但是有 ...
- 2013 ACM/ICPC Asia Regional Changsha Online - E
第一个被板刷的题 取余 依次算在周几 #include <iostream> #include<cstdio> #include<cstring> #include ...