objective-c字典

Objective-c字典

字典

1. Foundation中的字典(NSDictionary, NSMutableDictionary)是由键-值对组成的数据集合。正如,我们在字典里查找单词的定义一页。通过key键。查找对应value值,key是字符串对象,值可以是其他任意类型对象。在一个字典对象中。key必须是唯一的,此外,字典对象的键和值不可以为空nil,如果需要在一个字典对象中表示一个空值,可以使用NSNull对象

 ?为什么使用字典??为什么不使用数组?

 数组的特征:他是按一定顺序曲排列的集合,通过下标曲存取值(当希望数据是按照一定的顺序曲排列的适合 选择使用数组)

 字典特征:通过key存取值,(获取一个具体的标识 准确的得到咱们想要的值)

 

 字典是通过key来存取值

 key value 是成对出现的

 字典的类名NSDictionary

     初始化一个空字典

//        NSDictionary *dictionary = [[NSDictionary alloc] init];

////        初始化一个空典

//        NSDictionary *dictionary1 = [NSDictionary dictionary];

////        初始化的同时 添加一对键值

        NSDictionary *dictionary2 = [NSDictionary dictionaryWithObject:@"value" forKey:@"key"];

//        初始化的同时添加多对键值

//        前面是值 可以是任意类型

//        后面是key 必须是字符串

        NSDictionary *dictionary3 = [NSDictionary dictionaryWithObjectsAndKeys:@"object",@"key",@"object1",@"key1", @"object2",@"key2",nil];

//        字典的新方法

//        前面是key 后面是值 与之前的方法的键值相反

        NSDictionary *dictionary4 = @{@"key":@"",@"key1":@"1"};

        NSLog(@"%@",dictionary3);

        NSLog(@"%@",dictionary4);

可变字典

可变字典:可以删除、替换(添加)

类名位NSMutableDictionary

不可以用这种方式初始化NSMutableDictionary *dictionary =@{@"key1":@"object1",@"key2":@"object2"};

NSMutableDictionary *dictionary = [NSMutableDictionary dictionary];//初始化了一个空字典

 

 

 

 

 

个人总结:

字典和数组的定义和赋值有很多相似的地方,可以一起记忆;如

 

 

数组 定义 NSArray *array = [[NSArray alloc] init];

定义 NSArray *array = [NSArray array];

定义并赋一个值 NSArray *array = [NSArray arrayWithObject:@“”];

定义并赋多个值

NSArray *array = [NSArray arrayWithObjects:@"",@"", nil];

一种新方法,既可以赋多个值也可以赋一个值

NSArray *array = @[@“",@""];

 

 

字典 定义NSDictionary *dictionary = [[NSDictionary alloc] init];

定义 NSDictionary *dictionary1 = [NSDictionary dictionary];

定义并赋一个键和值 NSDictionary *dictionary2 = [NSDictionary dictionaryWithObject:@"value" forKey:@“key”];

 

定义并赋多个键和值 NSDictionary *dictionary3 = [NSDictionary dictionaryWithObjectsAndKeys:@"object",@"key",@"object1",@"key1", @“object2",@"key2",nil];

 

而在取值时有一点区别

数组取值 是数组名跟数组下标,如:array[0];但是不能越界,即不能超过array.count;array.count为数组长度;

 

而字典取值则是用函数 objectForKey:@“键”;

也可以用 dictionary[@“键”];

 

还有一个区别是:打印输出的时候字典是{值;值1;值2;值3},数组是(值,值1,值2,值3)或[值,值1,值2,值3]

posted @ 2015-06-24 19:33  fengsh_h  阅读(243)  评论(0编辑  收藏  举报