[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 ...
随机推荐
- [数论]ZOJ3593 One Person Game
题意:一个人要从A走到B 只能走a布.b步.(a+b)步,可以往左或右走 问 最少要走几步,不能走到的输出-1 可以列出方程 $ax+by=A-B$ 或者 $ax+(a+b)y=A-B$ 或者 ...
- Mac OS X 启用 Web 服务器
转载: http://note.rpsh.net/posts/2013/11/26/osx-apache-server-php-mysql/
- delphi 反射(原理)
关于反射的用途是『降低模块间的耦合度』这个倒未必尽然 单就delphi来说,从实现上看,它的所谓反射是基于RTTI,而RTTI的出现按照官方的说法是为了实现RAD中窗体文件DFM的持久化而产生的,其实 ...
- WinAPI——UnhookWindowsHookEx - 卸掉钩子
UnhookWindowsHookEx( hhk: HHOOK {钩子句柄} ): BOOL; {True/False}
- tlplayer 所有平台版本支持水印叠加
tlplayer支持视频渲染前水印叠加,各个系统版本同样支持. 联系方式:weinyzhou86@gmail.com QQ:514540005 版权所有,禁止转载. 发布自:http://blog.c ...
- java 死锁及解决
Java线程死锁如何避免这一悲剧 Java线程死锁需要如何解决,这个问题一直在我们不断的使用中需要只有不断的关键.不幸的是,使用上锁会带来其他问题.让我们来看一些常见问题以及相应的解决方法: Jav ...
- C# DateDiff与DateAdd
原文地址:http://www.wlm.so/Article/Detail/lmb49q5hxpqyi00000 刚刚在百度上搜C#里面的DateDiff,一看吓一跳,C#没有这个函数. 还有各种自定 ...
- PHP内置的Web Server的使用
自PHP5.4之后 PHP内置了一个Web 服务器. 让我们来看看php Web Server的简单使用: 启动php Web Server php -S localhost:8080 通过 php ...
- 自定义View 实现软键盘实现搜索
1. xml文件中加入自定义 搜索view <com.etoury.etoury.ui.view.IconCenterEditText android:id="@+id/search_ ...
- SqlServer中decimal(numeric )、float 和 real 数据类型的区别[转]
decimal(numeric ) 同义,用于精确存储数值 float 和 real 不能精确存储数值 decimal 数据类型最 ...