Objective-C NSDictionary & NSMutableDictionary

现在每天要抓紧的学习了,所以争取每天能学习两个知识点,尽快把OC学习完,然后进入开发阶段! 加油.

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[])

{

@autoreleasepool {

#pragma mark - NSDictionary

//NSDictionary

//使用initWithObjectsAndKeys:方法创建字典对象

//在对象创建过程中,一次性存入多个键值对,值(value)在前,键(keys)在后,键值之间用,号隔开,最后以nil结尾

//字典和数组不一样,字典的内部元素是无序的内部都是由一个个条目(键值对)组成的,所以是没有顺序的.

NSDictionary *obj1= [[NSDictionary alloc] initWithObjectsAndKeys:@"Jack",@"name",@"male",@"sex",[NSNumber numberWithInt:28],@"age", nil];

//通过key值获取value

NSLog(@"=======通过key获取value======");

NSString *sex = [obj1 valueForKey:@"sex"];

NSLog(@"%@",sex);

//获取所有value

NSLog(@"=======allValue======");

NSArray *allObjectValue = [obj1 allValues];

NSLog(@"%@",allObjectValue);

//获取所有key

NSLog(@"=======allkeys=======");

NSArray *allObjectKey = [obj1 allKeys];

NSLog(@"%@",allObjectKey);

//便利字典 便利只能便利key,然后在通过key找value

NSLog(@"=====便利=========");

for (NSString *key in obj1) {

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

}

#pragma mark - NSMutableDictionary

//NSMutableDictionary

//使用便利构造器,创建可变字典对象

NSLog(@"=======1========");

NSMutableDictionary *obj2 = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"Henry",@"name",@"male",@"sex",@"26",@"age", nil];

NSLog(@"%@",obj2);

//字典有两个方法来添加:

//1.通常情况下都是用setValue forKey 因为可以正常给nil

//2.也可以用setObject forKey 但如果给nil 就会Crash

//添加

[obj2 setValue:@"130" forKeyPath:@"weight"];

NSLog(@"%@",obj2);

[obj2 setObject:@"130" forKey:@"weight"];

NSLog(@"%@",obj2);

//修改

//setValue forKey 方法: 如果字典存在对应的key,那么就回修改value的值,如果不存在对应的key,就会添加对应的键值对,所以setValue forKey可以用来修改和添加

[obj2 setValue:@"100" forKey:@"weight"];

NSLog(@"%@",obj2);

//删除

//删除包含两个方法:

//1.removeObjectForKey 例如:删除@"sex"

[obj2 removeObjectForKey:@"sex"];

NSLog(@"%@",obj2);

//2.removeAllObjectss 删除所有

[obj2 removeAllObjects];

NSLog(@"没有了 %@",obj2);

//扩展题:用字典和数组表示国家,省份,城市,地区

NSDictionary *obj3 = [NSDictionary dictionaryWithObjectsAndKeys:@"China",@"Country",@"heilongjiang",@"shengfen",@"Harbin",@"City",@"acheng",@"diqu", nil];

NSDictionary *obj4 = [NSDictionary dictionaryWithObjectsAndKeys:@"America",@"Country",@"NewYork",@"NY",@"NewzeXi",@"NzX",@"abc",@"diqu", nil];

NSArray *array = [[NSArray alloc] initWithObjects:obj3,obj4, nil];

for (NSDictionary *dic in array) {

NSLog(@"%@",dic);

}

}

return 0;

}

时间: 2024-10-13 15:51:33

Objective-C NSDictionary & NSMutableDictionary的相关文章

NSDictionary , NSMutableDictionary, NSMutableDictionary 和 NSMutableSet)相当于java的map、set

1 NSDictionary 和 NSMutableDictionary NSDictionary  :就是java中的map; 放入对象是键值对 key-value  , 同样 秉持了一样的原则,只能放入对象,不可本体增删改; (1)初始化方法 + dictionaryWithObject:forKey: + dictionaryWithObjects:forKeys: + dictionaryWithObjectsAndKeys: 这三个是最常用的吧,注意是对象在前,key在后 2 访问 k

OC -- NSDictionary NSMutableDictionary

NSDictionary  NSMutableDictionary 只能存放OC对象,不能存放int, float, double, struct, enum类型数据 NSDictionary *dict1 = @{@"name" : @"As god name", @"address" : @"shanghai", @"program" : @"ios"}; NSDictionary

关于NSString,NSMutableString,NSArray,NSMutableArray,NSDictionary,NSMutableDictionary

NSString,NSMutableString,NSArray,NSMutableArray,NSDictionary,NSMutableDictionary 在 OC 中我们天天都要用,而我们要怎么学习它们呢? 我认为学习这些常用的类,使用类比的方法就行了,只要学会一个类,就能类比另外两个类了.. 比如,NSString和NSMutableString的可变与不可变,主要区分的标准是,它们本身是不是可以变,可变的一般都能增,删,改,而不可变的方法主要是创建,查看,得到元素个数或者长度等等;

NSString,NSMutableString, NSArray ,NSMutableArray,NSDictionary,NSMutableDictionary 深拷贝,浅拷贝分析

NSString,NSMutableString, NSArray ,NSMutableArray,NSDictionary,NSMutableDictionary 深拷贝,浅拷贝. 首先我们得知道什么是深拷贝,什么事浅拷贝. 简单点说深拷贝就是拷贝内容,浅拷贝就是拷贝指针. 上面那些类我们可以这样理解他们的深.浅拷贝.只要上面那些类中的NSString,NSArray,NSDictionary这三个类的实例化对象是调用copy方法进行拷贝那么他们拷贝的就是一个指针,就是说他们只是拷贝了一个指向

NSDictionary/NSMutableDictionary

NSDictionary/NSMutableDictionary 特点: (1)里存储的东西都是键值对 (2)可以像数组一样快速创建(适用 NSDictionary):@{key1 : value1, (3)快速访问元素:字典名 [key] 比如可以这样为指定 key 赋值: dic [@"key1"] = @"value1"; 快速获取 key 所对应的 value: key2 : value2} NSString *name = dic[@"name&

Objective - C NSDictionary不可变字典和NSMutableDictionary可变字典

//创建一个不可变的字典对象 //便利构造器创建 NSDictionary *dic = [NSDictionary dictionaryWithObjectsAndKeys:@"zhonger", @"name2", @"taixu", @"name1", @"caicai", @"name3", nil]; //初始化方法 //先给value 再给key NSDictionary *

NSDictionary&amp;NSMutableDictionary常用操作梳理

同数组(NSArray),字典类NSDictionary也支持Object Literals,允许我们方便地基于字面量定义初始化字典对象.以下基于字面量语法快捷初始化字典(NSDictionary): NSDictionary* literalDictionary = @{@"k1":@"v1", @"k2":@"v2", @"k3":@"v3"};  1.创建初始化(Initializ

OC_ NSDictionary ,NSMutableDictionary 字典

1 数组与字典的区别 数组: 1>存放一组有序对象的集合 2> 通过index下标找对应的对象 3> 数组中对象可以重复 字典: 1>存放一组无序key-value的集合 2> 通过key找到对应的value 3>字典key是唯一的,但是不同的value可以重复 2 字典的初始化 使用一个类方法创建一个空字典(常用) NSDictionary *dic1 = [NSDictionary dictionary]; (常用) 通过字面量去创建不可变数组和不可变字典 NSAr

【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>