Object-C学习(七)——Foundation框架(三)

四、NSDictionary和NSMutableDictionary

1、不可变字典NSDictionary

//字典的创建
NSArray *array1 = [NSArray arrayWithObjects:@”zhangsan”,@”zhangfei”,nil];
NSArray *array2 = [NSArray arrayWithObjects:@”lisi”,@”liping”,nil];

NSDictionary *dic1 = [[NSDictionary alloc] initWithObjectsAndKeys:array1,@”zhang”,array2,@”li”,nil];

//获取字典中的元素个数
NSUInteger count = dic1.count;//or [dic1 count]
NSLog(@”count = %ld”, count);

//创建一个字段是,初始化一个对象
NSDictionary *dict2 = [NSDictionary dictionaryWithObject:array1 forKey:@”zhang”];

//获取字段中所有的key
NSArray  *allkeys = [dic1 allKeys];//or dic1.allKeys

//获取字典中所有的value
NSArray *allvalues = [dic1 allValues];

//通过key获取value
NSArray *array = [dic1 objectForKey:@”zhang”];

/*------------------------------------------------*/
NSDictionary *dic3 = @{@”zhang”:array1,@”li”:array2};
NSLog(@”dic3 = %@” ,dic3);

//取value的语法,字段[“key”]
NSArray *array4 = dic3[“@”zhang”];
NSLog(@” array4 =%@” , array4);

2、可变字典NSMutableDictionary

//创建一个可变字典
NSMutableDictionary *md1 = [[NSMutableDictionary alloc] initWithCapacity:3];

//添加元素
[md1 setObject:array1 forKey:@”zhang”];
[md1 setObject:array2 forKey:@”li”];

//将字典dic1中的所有元素添加到md1字典中
[md1 addEntriesFromDictionary:dic1];//字典中相同的key不能重复添加
NSLog(@” md1 = %@” , md1);

//如果添加相同的key,会将原来的value覆盖掉
[md1 setObject:@”zhangsan” forKey:@”zhang”]; 

//删除
[md1 removeObjectForKey:@”zhang”];

//删除所有的元素
[md1 removeAllObjects];

//根据多个key删除对应多个元素
[md1 removeObjectsForKeys:@[@”zhang”,@”li”];
NSLog(@”md1 = %@”, md1);

//遍历字典

//快速遍历
for (NSString *key in md1){
  NSArray * names = [md1 objectForKey:key];
  NSLog(@” names=%@,value=%@”,key, names);
}

//普通遍历
NSArray *allkeys = [md1 allKeys];
for(int i=0;i< allkeys.count;i++){
  NSString *key = allValues[i];
  NSArray *names = md1[key];
  NSLog(@”key=%@,value=%@”,key,names);

}

时间: 2024-11-01 21:21:15

Object-C学习(七)——Foundation框架(三)的相关文章

黑马程序员-OC加强学习日记-Foundation框架中的字符串和数组

------- ios培训. android培训.java培训.期待与您交流! ---------- 一.Foundation框架 1.概念:框架是由许多类.方法.函数.文档按照一定的逻辑组织起来的集合,以便使研发程序变得更容易. 为所有程序开发奠定基础的框架称为Foundation框架 2.使用:要想使用Foundation框架中的功能,包含它的主文件即可 #import <Foundation/Foundation.h> 二.NSString: 不可变字符串类   一个NSString对象

黑马程序员——OC学习小结------Foundation框架

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 一.常用的结构体 NSRange (location,length) NSPoint\CGPoint (x,y) NSSize\CGSize (width, height) NSRect\CGRect (CGPoint,CGSize) NSRange void range() { /* @"i love oc" love的范围 NSRange r1 = {2, 4}; // 不用 N

Objective - C学习 (Foundation框架)-- 01结构体

NSRange (location length) "I love oc"NSRange r = NSMakeRange(2,4) NSString *str = @"i love you"; NSRange range = [str rangeofString:@"love"]; NSLog(@"loc = %ld, length = %ld",range.location, range.length); 找不到length

OC学习13——Foundation框架中的集合

OC集合类是一些非常有用的工具类,它可以用于存储多个数量不等的对象,并可以实现常用的数据结构(栈.队列等),此外,OC集合还可用于保存具有映射关系的关联数组.OC的集合大致可以分为:NSArray.NSSet.NSDictionary三种体系.NSArray代表有序可重复的集合:NSSet代表无序不可重复的集合:NSDictionary代表具有映射关系的集合. 下午继续...

Objective - C学习 (Foundation框架)-- 02类

NSString NSMutableStringNSArray NSMutableArrayNSSet NSMutableSetNSDictionary NSMutableDictionaryNSDateNSObject C -> OC字符串NSString *s = [[NSString alloc] initWithUTF8String:"jake"]; OC -> Cconst char *cs = [s UTF8String];NSUTF8StringEncodin

OC学习篇之---Foundation框架中的NSDirctionary类以及NSMutableDirctionary类

昨天学习了Foundation框架中NSArray类和NSMutableArray类:http://blog.csdn.net/jiangwei0910410003/article/details/41809719,今天来看一下Foundation框架中的NSDirctionary类,NSMutableDirctionary类,这个和Java中的Map类很想,OC中叫字典,Java中叫Map,还有字典是无序的,这个和NSArray不一样,Java中的Map也是无序的,通过hash值去检索元素的.

(转载)OC学习篇之---Foundation框架中的NSDirctionary类以及NSMutableDirctionary类

昨天学习了Foundation框架中NSArray类和NSMutableArray类,今天来看一下Foundation框架中的NSDirctionary类,NSMutableDirctionary类,这个和Java中的Map类很想,OC中叫字典,Java中叫Map,还有字典是无序的,这个和NSArray不一样,Java中的Map也是无序的,通过hash值去检索元素的. 一.NSDirctionary类 1 // 2 // main.m 3 // 19_NSDictionary 4 // 5 //

黑马程序员_OC学习笔记之Foundation框架集合类

OC--集合类 1.OC集合类包括NSArray,NSSet,NSDictionary都是以面向对象的方式操作数组,而且OC数组不像C语言中的数组只能存放同一种数据类型,它可以存放任意类型的对象,但是不能存放非OC对象类型如基本数据类型int,struct,enum等 2.OC数组是以对象的方式存在,因此在创建的时候需要为创建的对象前面加* 3.NSArray数组一旦创建就决定了是不是可变,而且永远是可变或不可变 4.NSArray数组和子类NSMutableArray的基本操作: 1>使用NS

黑马程序员-OC学习笔记之Foundation框架NSNumber、NSValue和NSDate

---------------------- IOS开发.Android培训.期待与您交流! ---------------------- 一.NSNumber 前几篇笔记中,小桥复习了Foundatio框架中的几个类,这三个是OC学习的尾声了. 小桥已经复习过OC数组类NSArray,也说过它只能存放OC的对象,对于基本的数据类型确无能为力,但是实际编程中经常要把基本的数据如int.float,结构体存放的OC数组中,怎么办?这里的NSNumber就有用了,它能够把基本数据类型包装成OC对象.

IOS学习笔记--Objective-C之Foundation框架

概述 原文地址:http://www.cnblogs.com/kenshincui/p/3885689.html 我们前面的章节中就一直新建Cocoa Class,那么Cocoa到底是什么,它和我们前面以及后面要讲的内容到底有什么关系呢?Objective-C开发中经常用到NSObject,那么 这个对象到底是谁?它为什么又出现在Objective-C中间呢?今天我们将揭开这层面纱,重点分析在IOS开发中一个重要的框架 Foundation,今天的主要内容有: Foundation概述 常用结构