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遍历一样。
|