A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 胡胡胡胡胡 初级黑马   /  2014-11-10 14:46  /  1266 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

NSDictionary

通过一个 key ——> value
字典中存储的是键值对(key,object)。


NSDictionary *dict = [NSDictionary dictionaryWithObject:@"jack" forkey:@"name"]; (不可变,单个元素)


取出object
id obj = [dict objectForKey:@"name"];  // 此时将name对应的jack赋值给obj。
简便方法: id obj = dict[@"name"];


创建不可变字典
NSDictionary *dict1 = [NSDictionary dictionaryWithObjects: NSArray * forkers: NSArray *];(多个元素,可以建立两个array数组,一个存放object  一个存放key , 两个数组元素一一对应,不实用


NSDictionary *dict = [NSDictionary dictionaryWithObjectAndKeys:@"一个对象",@"一个key",@"一个对象",@"一个key",nil];   (一个对象一个key,可读性不好,不实用


快速创建NSDictionary方法  (快速创建一个array的方法是@[];)
NSDictionary *dict = @{
@"一个key":@"一个对象",
@"一个key":@"一个对象"}
(多个元素,常用


元素的个数
dict.count;  // 计算的是键值对,一个key和一个对象算为一个。


NSMutableDictionary




NSMutableDictionary *dict = [NSMutableDictionary dictionary];


添加键值对


[dict setObject:@"jack" forKey:@"name"];


[dict setObject:@"北京" forKey:@"address"];


[dict setObject:@"jack1" forKey:@"name"];


Object可以重复 key不可以重复
如果key重复  后边的key对应的object的值将覆盖上边该key所对应的object


删除键值对


[dict removeObjectForKey:@"name"];
删除name对应的object。


打印字典


NSLog(@"%@",dict);   // 会打印出字典中所有的键值对




字典的遍历


NSDictionary *dict = @{@"name":@"jack",@"qq":@"34125151"};


1> for循环
NSArray *keys = [dict allkeys];  // 拿出所有的key
for(int i = 0; i
{
NSString *key = keys;
NSString *object= dict[key];
NSLog(@"%@--%@", key, object)
}
  字典是无序的,所以打印结果是无序的。


2>使用block
[dict enumerateKeysAndObjectUsingBlock:
^(id key, id obj, BOOL *stop){
NSLog(@"%@---%@", key, obj);
}]
和NSArray的block遍历一样。

评分

参与人数 1技术分 +1 收起 理由
星河鹭起 + 1

查看全部评分

8 个回复

倒序浏览
这些发怒的表情我也是醉了。。。。:L
回复 使用道具 举报
哈哈哈啊啊啊啊
回复 使用道具 举报
我只是来水点黑马币的
回复 使用道具 举报

:Q技术分怎么办啊
回复 使用道具 举报
完全看不懂 哈哈
回复 使用道具 举报
kale 中级黑马 2014-11-11 13:19:57
7#
代码中那么多的表情是要闹哪样
回复 使用道具 举报
这是干嘛?
回复 使用道具 举报
抓紧时间写到技术博客吧。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马