NSDictionary字典


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

//Foundation中的字典NSDictionary是由键-值对组成的数据集合。key(键)的值必须是唯一的

 

/*****************不可变字典*****************/

//字典的初始化

NSDictionary *dic1 = [NSDictionary dictionaryWithObject:@"value" forKey:@"key"];    //输出:{key = value}

NSDictionary *dic2 = [NSDictionary dictionaryWithObjects:@"v1", @"k1", @"v2", @"k2", @"v3", @"k3", nil];

NSDictionary *dic3 = [NSDictionary dictionaryWithDictionary:dic2];

 

//获取字典的数量

int count = [dic2 count];    //输出:count=3(有3组键-值对)

 

//根据键名获取其值

NSString *string = [dic2 objectForKey:@"k2"];    //输出:string=v2

 

//获取字典的所有key和value

NSArray *keyArray = [dic2 allKeys];    //输出:keyArray={k1,k2,k3}

NSArray *valueArray = [dic2 allValues];    //输出:valueArray={v1,v2,v3}

 

/****************可变字典*********************/

//创建一个字典

NSMutableDictionary *mutableDic = [[NSMutableDictionary alloc] initWithObjectsAndKeys:@"v1", @"k1", @"v2", @"k2", @"v3", @"k3", nil];

 

//添加键-值对

//方式一

NSDictionary *dic4 = [NSDictionary dictionaryWithObject:@"v4" forKey:@"k4"];

[mutableDic addEntriesFromDictionary:dic4];

//方式二

【mutableDic setValue:@"object" forKey:@"k5"];

 

//创建一个空的可变字典

NSMutableDictionary *mutableDic2 = [NSMutableDictionary dictionary];

[mutableDic2 setDictionary:mutableDic];

//NSMutableDictionary *mutableDic2 = [NSMutableDictionary dictionaryWithObject:@"one" forKey:@"k"];

 

//根据键名删除元素

[mutableDic removeObjectForKey:@"k3"];

 

//删除一组键值对

NSArray *keys = [NSArray arrayWithObjects:@"k1", @"k2", @"k3", nil];

[mutableDic removeObjectsForKeys:keys];

 

//删除所有元素

[mutableDic removeAllObjects];

 

/****************遍历字典*************************/

//一般遍历

for(int index=0; index<[mutableDic count]; index++)

{

    NSString *object = [mutableDic objectForKey:[[mutableDic allKeys] objectAtIndex:index]];

    NSLog(@"%@", object);

}

 

//快速枚举

for(id key in mutableDic)

{

    NSString *object = [mutableDic objectForKey:key];

    NSLog(@"%@", object);

}

 

//通过枚举类型遍历

NSEnumerator *enumerator = [mutableDic keyEnumerator];

id key = [enumerator nextObject];

while(key)

{

    id object = [mutableDic objectForKey:key];

    NSLog(@"%@", object);

    key = [enumerator nectObject];

}

时间: 2024-09-12 23:22:15

NSDictionary字典的相关文章

OC之之NSDictionary/NSMutableDictionary

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

Swift字典类

在Foundation框架中提供一种字典集合,它是由"键-值"对构成的集合.键集合不能重复,值集合没有特殊要求.键和值集合中的元素可以是任何对象,但是不能是nil.Foundation框架字典类也分为NSDictionary不可变字典和NSMutableDictionary可变字典.一.NSDictionary类 NSDictionary有很多方法和属性,下面总结其常用的方法和属性. initWithDictionary: 构造器,通过Swift的Dictionary创建NSDicti

objective-c 有感

1. 在objective-c中使用#import<>导入系统头文件,#import""导入用户头文件,#import可以保证头文件只被包含一次. 2.  基本数据类型总结 2.1 基本数据类型分类 1) 整型 1. 在objective-c中使用#import<>导入系统头文件,#import""导入用户头文件,#import可以保证头文件只被包含一次. 2.  基本数据类型总结 2.1 基本数据类型分类 1) 整型     int,sho

Xcode6 模拟器路径

Xcode6 模拟器路径          Xcode6发布后,出现了很多的变动,功能性的变动,在这里不进行过多的赘述,在WWDC上苹果已经进行了讲述,网上也有很多文章,这里要介绍的是一些不太容易发现的,但很重要的小地方.         1.Xcode6模拟器路径的变更          在Xcode5和之前的版本中,Xcode的模拟器路径为:/Users/username/Library/Application Support/iPhone  Simulator.在该文件夹下,可以查看到所有

Swift数组、字典和集合

原文出自:标哥的技术博客 前言 Swift语言提供Array.Set和Dictionary三种基本的集合类型用来存储集合数据.数组是有序的数据集:集合是无序无重复的数据集:而字典是无序的键值对数组集. Swift的Array.Set和Dictionary类型被实现为泛型集合.因此,它所存储的元素的类型必须是一致的,同样,我们取出来的数据类型也是明确的. 集合的可变性(Mutability Of Collections) 如果创建一个Arrays.Sets或Dictionaries并且把它分配成一

[iphone] NSDictionary / NSMutableDictionary 及 NSArray / NSmutableArray (实例)

NSDictionary 和 NSArray一样是不可变的对象.用来实现字典集合,在给定关键字(通常是一个NSString字符串)下存储一个数值(可以是任何类型的对象).  NSDictionary使用类方法 dictionaryWithObjectAndKeys: 来创建字典:使用方法objectForKey: 来获取字典中的值.  Java代码   NSDictionary *dict = [NSDictionary dictionaryWithObjectAndKeys:@"just&qu

使用 NSPropertyListSerialization 持久化字典与数组

NSPropertyListSerialization The NSPropertyListSerialization class provides methods that convert property list objects to and from several serialized formats. Property list objects include NSData, NSString, NSArray, NSDictionary, NSDate, and NSNumber

JSONString 与 JSONData 与字典或者数组互相转化

JSON JSON相关的,数据彼此间的转化进行了简单地封装,源码如下,支持arc与非arc YXJSON.h + YXJSON.m // // YXJSON.h // // JSONString 与 JSONData 与 字典或者数组互相转化 // // Copyright (c) 2014年 YouXian. All rights reserved. // #import <Foundation/Foundation.h> @interface YXJSON : NSObject /** 将

将字典或者数组转换成JSON数据或者字符串

将字典或者数组转换成JSON数据或者字符串 源码: NSDictionary+JSON.h 与 NSDictionary+JSON.m // // NSDictionary+JSON.h // Category // // Created by YouXianMing on 15-2-09. // Copyright (c) 2014年 YouXianMing. All rights reserved. // #import <Foundation/Foundation.h> @interfa