NSDictionary 详解

本文介绍了NSDictionary的基本使用技巧,包括如何正确地使用dictionaryWithObjectsAndKeys方法存储数据,如何处理BOOL类型的值,以及三种不同的遍历NSDictionary的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、使用dictionaryWithObjectsAndKeys方法存储数据时,中间任何一个对象都不能为nil,否则它后面都对象都无法存入aFiledic。因为dictionaryWithObjectsAndKeys方法是以nil结尾的。所以,只要见到nil,此方法就认为结束了。

 NSDictionary *aFiledic = [NSDictionary dictionaryWithObjectsAndKeys:
                              aFileModel.gid,               @"gid",
                              aFileModel.nid,               @"nid",
                              aFileModel.vid,               @"vid",
                              aFileModel.videoName,         @"videoName",nil];

2、BOOL 类型数据不能直接存入Dicionary,要将BOOL类型数据转换为NSNumber之后再存。

[NSNumber numberWithBool:aFileModel.isDownloading]

 

3、NSDictionary的遍历

法一

据说是开发文档中的方法,未考证。

NSEnumerator *enumerator = [myDictionary keyEnumerator];
id key;
while ((key = [enumerator nextObject])) {
    /* code that uses the returned key */
}

法二

@未解提供,也是最方便用的最多的一种方法,一般用这种就可以。

NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:@"value1", @"key1", @"value2", @"key2", nil]; for (NSString *key in dict) { NSLog(@"key: %@ value: %@", key, dict[key]); } 

法三

~~需要根据i有特殊的操作时可以用这种~~
上面那一行删除了,好像是语法错了,没有删除线...
之前写这个文章的时候脑子里乱了,其实根据i有特殊操作的是NSArray,感谢@未解的提醒~
这个方法是最笨拙的一个,一般遍历NSDictionary也不会这么用,姑且记在这里,怎么也算是一种方法嘛~

- (void)describeDictionary:(NSDictionary *dict)

{
  NSArray *keys;
  int i, count;
  id key, value; keys = [dict allKeys]; count = [keys count]; for (i = 0; i < count; i++) { key = [keys objectAtIndex: i]; value = [dict objectForKey: key]; NSLog (@"Key: %@ for value: %@", key, value); } }

 转:http://segmentfault.com/blog/jokinryou/1190000000440081?page=1

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值