【Foundation Frame】NSDictionary/NSMutableDictionary

NSDictionary 用于保存具有映射关系的数据,NSDictionary 包含两组数据,一组用来保存key值,一组用来保存valure值。

一个Key可以对应多个value,反过来则不可以。

//

//  main.m

//  NSDictionary

//

//  Created by mac on 14-12-4.

//  Copyright (c) 2014年
mac. All rights reserved.

//

#import<Foundation/Foundation.h>

void staticCreatDictionary()

{

NSDictionary * dict = [NSDictionarydictionary];

dict = [NSDictionarydictionaryWithObject:@"dictonary0"forKey:@"key1"];

dict = [NSDictionarydictionaryWithObjectsAndKeys:@"Dictionary1",@"key2",@"Dictionary2",@"key3",@"Dictionary3",@"key4",nil];

NSDictionary * dict1 = [NSDictionarydictionaryWithDictionary:dict];

NSLog(@"DICTIONARY:%@",dict1);

NSArray * keyArray = [NSArrayarrayWithObjects:@"k1",@"k2",@"k3",@"k4",@"k5",nil];

NSArray * valureArray = [NSArrayarrayWithObjects:@"Hello1",@"Hello2",@"Hello3",@"Hello4",@"Hello5",nil];

//通过数组创建

dict = [NSDictionarydictionaryWithObjects:valureArrayforKeys:keyArray];

NSLog(@"%@",dict);

//通过文件创建

NSDictionary * dict3 ;

dict3 = [NSDictionarydictionaryWithContentsOfFile:@"/Users/mac/desktop/a.txt"];

NSLog(@"Ditc3:%@",dict3);

}

void others()

{   NSDictionary * dict ;

dict = [NSDictionarydictionaryWithObjectsAndKeys:@"Dictionary1",@"key2",@"Dictionary2",@"key3",@"Dictionary3",@"key4",nil];

//计数字典大小

NSUInteger count = [dictcount];

NSLog(@"%lu",count);

//判断是否两个字典是否相同

NSDictionary * dict1;

dict1 = [NSDictionarydictionaryWithObject:@"dictonary0"forKey:@"key1"];

NSLog(@"%i",[dictisEqualToDictionary:dict1]);

[dict writeToFile:@"/Users/mac/desktop/a.txt"atomically:YES];

}

void keyAndValure()

{

NSDictionary * dict3 ;

dict3 = [NSDictionarydictionaryWithContentsOfFile:@"/Users/mac/desktop/a.txt"];

//返回所有key

NSArray * keysAtrray = [dict3allKeys];

NSLog(@"%@",keysAtrray);

//返回一个对象对应的所有key

NSArray * keyArray = [dict3allKeysForObject:@"Dictionary1"];

NSLog(@"%@",keyArray);

//返回一个key对应的valure

id obj = [dict3objectForKey:@"key2"];

NSLog(@"%@",obj);

//返回一组key对应的valure

NSArray * valureArray = [dict3objectsForKeys:keysAtrraynotFoundMarker:@"NoFound"];

NSLog(@"%@",valureArray);

}

void  ergodic()

{

NSDictionary * dict3 ;

dict3 = [NSDictionarydictionaryWithContentsOfFile:@"/Users/mac/desktop/a.txt"];

//快速遍历

for (id
key in dict3) {

NSLog(@"%@",[dict3objectForKey:key]);

}

//迭代器方法遍历

NSEnumerator * keyEnum = [dict3keyEnumerator];

id obj;

while (obj = [keyEnumnextObject])
{

NSLog(@"%@",obj);

}

NSEnumerator * valureEnum = [dict3objectEnumerator];

id obj1;

while (obj1 = [valureEnumnextObject])
{

NSLog(@"%@",obj1);

}

//block方法遍历

[dict3 enumerateKeysAndObjectsUsingBlock:^(id
key, id obj,BOOL
*stop) {

NSLog(@"%@  %@",key,obj);

NSString * keyJuge = key ;

if ([keyJugecompare:@"key3"]==0)
{

*stop = YES ;

}

}];

}

void mutableDictionary()

{

//动态创建

NSMutableDictionary * dynamicDict;

NSArray * valueArray = [NSArrayarrayWithObjects:@"Hello1",@"Hello2",@"Hello3",@"Hello4",nil];

NSArray * keyArray = [NSArrayarrayWithObjects:@"1",@"2",@"3",@"4",nil];

dynamicDict = [NSMutableDictionarydictionaryWithObjects:valueArrayforKeys:keyArray];

NSLog(@"%@",dynamicDict);

//替换元素元素

[dynamicDict setObject:@"What"forKey:@"1"];

//删除元素

[dynamicDict removeObjectForKey:@"1"];

NSLog(@"%@",dynamicDict);

}

int main(int
argc, constchar
* argv[]) {

@autoreleasepool {

// insert code here...

NSLog(@"Hello, World!");

//  staticCreatDictionary();

//  others();

//   keyAndValure();

// ergodic();

mutableDictionary();

}

return0;

}

时间: 2024-10-23 19:16:19

【Foundation Frame】NSDictionary/NSMutableDictionary的相关文章

【Foundation Frame】NSString

NSString代表字符序列不可变的字符串,功能更强大,更方便简单. 下面代码列举了大部分常用的NSString方法. // //  main.m //  OcString // //  Created by mac on 14-12-2. //  Copyright (c) 2014年 mac. All rights reserved. // #import <Foundation/Foundation.h> void dynamicCreateString() { //1 NSString

【Foundation Frame】NSMutableArray

NSArray 代表集合元素不可变的集合,一旦NSArray被创建成功,程序不能向集合中添加新元素,删除旧元素,替换旧元素. NSMultableArray 恰恰相反,为可变元素的集合,可以增加.删除.替换元素. 可进行的操作: 1.创建 arrayWithCapacity 2.增加元素,以add开头 3.删除元素,以remove开头 4.替换元素,以replace开头 5.对集合本身排序,以sort开头(与NSArray不同,NSMutable是对元素集合自身进行排序,NSArray则是返回一

【Foundation Frame】Struct

// //  main.m //  struct // //  Created by mac on 14-12-2. //  Copyright (c) 2014年 mac. All rights reserved. // #import <Foundation/Foundation.h> #pragma mark 基本数据类型---- void baseType() { //unsigned long  %lu NSUInteger i; //long NSInteger  j; //dou

【Foundation Frame】NSArray

NSArray 代表元素有序.可重复的一个集合,集合中每个元素都有对应的顺序索引. 创建NSArray的常见方法 1.array:创建一个不包含任何元素的空NSARRAY 2.arrayWithObject/initWithObject:创建只包含指定元素的NSArray 3.arrayWithObjects/initWithObjects:创建只包含一个或多个元素的NSArray 4.arrayWithContentsOfFile:读取文件内容来创建NSArray (以下程序列举了常用的NSA

黑马程序员---OC基础9【Foundation框架】【NSString介绍】【NSURL读写字符串】【NSString字符串比较】【NSString前后缀检查及搜索】【NSRange使用】

------- iOS培训.Android培训.Java培训.期待与您交流! ---------- [Foundation框架] 1.Foundation框架介绍 1)Foundation框架概念 框架是由许多类.方法.函数.文档按照一定的逻辑组织起来的集合 以便使研发程序变得 更容易在OS X下的Mac操作系统中大约有80个框架为所有程序开发奠定基础的框架称为Foundation 框架 2)Foundation框架的作用 Foundation框架是Mac\iOS中其他框架的基础 Foundat

Foundation框架--字典( NSDictionary NSMutableDictionary )

基础知识 1.字典不允许相同的key,但允许有相同的value. 2,字典是无序的,字典不能排序. 3.字典里的内容是成对存在的,不会出现单数. 4.快速创建的方式只适合不可变字典.

【IOS 开发】Objective-C Foundation 框架 -- 字符串 | 日期 | 对象复制 | NSArray | NSSet | NSDictionary | 谓词

一. 字符串 API 1. NSString 用法简介 (1) NSString API 介绍 NSString 功能 : -- 创建字符串 : 使用 init 开头的实例方法, 也可以使用 String 开头的方法; // init 开头方法创建字符串 unichar data[5] = {97, 98, 99, 100, 101}; NSString * str = [[NSString alloc] initWithCharacters : data length : 5]; // str

【翻译习作】 Windows Workflow Foundation程序开发-第一章01

第 1 章    欢迎来到工作流的世界 …思想如蝴蝶般飞到我身边 —— Gossard / Vedder (译注:Gossard与Vedder是来自Pearl Jam乐队的2名乐手,该句出自他们的歌曲<Even flow>) Windows Workflow可被看作是继COM+和分布式事务协调器(DTC)之后,Windows平台上最令人瞩目的一款中间件产品.它们之间的区别在于:不是每一个软件应用都需要进行分布式事务处理:但几乎每个软件都要在其内部实现工作流.为了能够领会微软设计Windows

【翻译习作】 Windows Workflow Foundation程序开发

近期整理硬盘,把09年的翻译习作<Windows Workflow Foundation程序开发>找出来了.现在又把译文过了一遍,做了些修改,贴出来献丑了.原书是<Programming Windows Workflow Foundation: Practical WF Techniques and Examples using XAML and C#>,作者K. Scott Allen,由Packt Publishing Ltd.出版. 当时我开始关注.NET 3.0,尤其对WF