黑马程序员技术交流社区

标题: 第一次学习ios,dictionary的笔记 [打印本页]

作者: 胡胡胡胡胡    时间: 2014-11-10 14:46
标题: 第一次学习ios,dictionary的笔记
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遍历一样。

作者: 胡胡胡胡胡    时间: 2014-11-10 14:47
这些发怒的表情我也是醉了。。。。:L
作者: hgzlpmg    时间: 2014-11-10 15:27
哈哈哈啊啊啊啊
作者: 直到世界的尽头    时间: 2014-11-10 15:44
我只是来水点黑马币的
作者: 胡胡胡胡胡    时间: 2014-11-10 15:47
直到世界的尽头 发表于 2014-11-10 15:44
我只是来水点黑马币的

:Q技术分怎么办啊

作者: geng    时间: 2014-11-11 12:11
完全看不懂 哈哈
作者: kale    时间: 2014-11-11 13:19
代码中那么多的表情是要闹哪样
作者: 我不明白    时间: 2014-11-11 13:28
这是干嘛?
作者: zhao190109    时间: 2014-11-11 14:51
抓紧时间写到技术博客吧。。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2