OC 字典

本文详细介绍了Objective-C中的字典概念,包括不可变字典(NSDictionary)和可变字典(NSMutableDictionary)。文中列举了字典的基本操作方法,并对比了字典与数组在大量数据处理时的效率区别。

字典分为不可变字典(NSDictionary)和可变字典(NSMutableDictionary),其中NSMutableDictionary继承于NSDictionary


    1.字典是由关键字“key”及其定义的值(value)所构成的集合,即它是由key-value组成的键值对的集合。“key”一般是字符串类型 “value”是OC中任意对象。对于字典来讲,我们就是通过key来访问value
    2.数组和字典。在有大量的数据或者频繁的查找的时候,使用字典效率更高。因为字典采用键查询的优化存储方式。
    3.字典里面存放的元素都要是对象类型才行。如果是基本数据类型,要先把基本数据类型进行封装,然后在存放到这些集合中去
    4.在字典中键值对是无序的

下面是字典中常用的方法

1.创建一个只有一个键值对的字典
NSDictionary *dictionary1 = [NSDictionary dictionaryWithObject:@"Rick" forKey:@"name"];

2.创建一个带有多个键值对的字典
NSDictionary *dictionary2 = [NSDictionary dictionaryWithObjectsAndKeys:@"阿萨德",@"name",@25,@"age",@"GZ",@"address", nil];

3.通过一个已存在的字典来创建一个字典
NSDictionary *dictionary3 = [NSDictionary dictionaryWithDictionary:dictionary2];

4.快捷方法创建有多个键值对的字典
NSDictionary *dictionary4 = @{@"name":@"Rick",@"age":@25,@"address":@"GZ"};

5.从本地文件中获取字典
NSDictionary *dictionary5 = [NSDictionary dictionaryWithContentsOfFile:@"/Users/ibokan2/Desktop/ooo.png"];

6.从网络上获取字典
NSDictionary *dictionary6 = [NSDictionary dictionaryWithContentsOfURL:[NSURL URLWithString:@"http://www.baidu.com"]];

7.获取字典中键值对的数量
NSUInteger count = [dictionary4 count];

8.通过key访问字典中对应的值
NSString *name = [dictionary4 objectForKey:@"name"];
或者
NSString *name1 = dictionary4 [@"name"]; 

9.查看字典中所有的key
NSArray *keyArray = dictionary4.allKeys;
NSLog(@"%@",keyArray);

10.查看字典中所有的value
NSArray *valueArray = dictionary4.allValues;
NSLog(@"%@",valueArray);

11.使用for循环遍历字典
    for(int i = 0; i <dictionary4.count; i++)
    {
        NSLog(@"%@ = %@",dictionary4.allKeys[i],dictionary4.allValues[i]);
    }

12. 使用for in遍历字典
NSArray *keyArray =  dictionary4.allKeys;
for (NSString *key in keyArray) {
    NSLog(@"%@ = %@",key,dictionary4[key]);
     }

下面是可变字典独有的方法
1.增加键值对
NSMutableDictionary *mDictionary1 = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"Rick",@"name",@25,@"age", nil];
[mDictionary1 setValue:@"Rick" forKey:@"name"];

2.修改键值对
[mDictionary1 setValue:@"Jack" forKey:@"name"];  //其实就是覆盖

3.删除指定key的对象
[mDictionary1 removeObjectForKey:@"name"];

4.删除所有对象
[mDictionary1 removeAllObjects];





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值