OC-字典常用操作(NSDictionary、NSMutableDictionary)

字典是关键字及其定义的集合
NSDictionary能在给定得关键字key(通常是一个NSString字符串)下存储一个数值value(可以是任意类型的Objective-C对象),然后你就可以用这个关键字来查找相应的数据
字典(也被称为散列表或关键数组)使用的是键查询的优化方式,可以立即查找出查询的数据,而不需要遍历

[objc]  view plain copy
  1. NSString *f1 = @"one";  
  2.     NSString *f2 = @"two";  
  3.     NSString *f3 = @"three";  
  4.     NSArray *key = @{@"1"@"2"@"3"};  
  5.     NSString *value = @{@"one"@"two"@"three"};  
  6.     //字典初始化的方法,一个key只有一个value,一个value可以有很多的key  
  7.     NSDictionary *f_nsd1 = [NSDictionary dictionaryWithObjectsAndKeys:f1@"1", f2@"2", f3@"3" ,nil];  
  8.     NSDictionary *f_nsd2 = @{@"11" : f1@"22" : f2@"33" : f3};  
  9.     NSDictionary *f_nsdarr = [NSDictionary dictionaryWithObjects:value forKeys:key];  
  10.       
  11.     //获取字典数量  
  12.     NSInteger count = [f_nsd1 count];  
  13.       
  14.     //取值,如果字典没有所查找数据返回nil值  
  15.     NSString *f_key1 = [f_nsd1 objectForKey:@"1"];  
  16.     NSString *f_key2 = f_nsd2[@"11"];  
  17.     //排序  
  18.       
  19.     NSArray *arrs=[f_nsd1 keysSortedByValueUsingSelector:@selector(compare:)];  
  20.       
  21.     //获取所有key  
  22.     NSArray *keys = [f_nsd1 allKeys];  
  23.     //获取所有Value  
  24.     NSArray *values = [f_nsd1 allValues];  
  25.       
  26.     //保存对象到内容文件  
  27.     NSString *path=@"/Users/apple/Desktop/test.plist";  
  28.     [f_nsd1 writeToFile:path atomically:YES];  
  29.     //从以前保存的文件读取到字典对象  
  30.     NSDictionary *data=[NSDictionary dictionaryWithContentsOfFile:path];  
  31.       
  32.     //可变字典  
  33.     //向NSMutableDictionary 类发送dictionary消息,可以创建新的NSMutableDictionary对象  
  34.     //也可以使用dictionaryWithCapacity:创建限制大小的可变数组  
  35.     NSMutableDictionary *f_nsm = [NSMutableDictionary dictionary];  
  36.     [f_nsm setObject:f1 forKey:@"111"];  
  37.     [f_nsm setObject:f2 forKey:@"222"];  
  38.     [f_nsm setObject:f3 forKey:@"333"];  
  39.       
  40.     //向字典里添加字典  
  41.     NSDictionary *f_nsd3 = [NSDictionary dictionaryWithObjects:@"four" forKeys:@"444"];  
  42.     [f_nsm addEntriesFromDictionary:f_nsd3];  
  43.       
  44.     [f_nsm removeObjectForKey:@"333"]; //从字典里删除单个key的value  
  45.       
  46.     //删除一组key的value  
  47.     NSArray *arrkeys = [NSArray arrayWithObjects:@"222"@"333", nil nil];  
  48.     [f_nsm removeObjectsForKeys:arrkeys];  
  49.       
  50.     //删除所有value  
  51.     [f_nsm removeAllObjects];  
  52.       
  53.     //快速枚举  
  54.     for (id key in f_nsm) {  
  55.         NSString *object = [f_nsm objectForKey:key];  
  56.     }  
  57.       
  58.     //迭代枚举器  
  59.     NSEnumerator *enumerator = [f_nsm keyEnumerator];  
  60.     id key = [enumerator nextObject];  
  61.     while (key) {  
  62.         id objects = [f_nsm objectForKey:key];  
  63.         key = [enumerator nextObject];  
  64.     }  
  65.       
  66.     //与NSArray一样,没有适合NSMutableDictionary的字面量初始化语法  
  67.       
  68.     

最后提醒各位一点,切记不要尝试创建NSStringNSArrayNSDictionary的子类

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值