黑马程序员---Foundation -NSDictionary

来源:互联网 发布:中国经济数据公布 编辑:程序博客网 时间:2024/04/19 12:03

NSDictionary的创建

+ (instancetype)dictionary;
+ (instancetype)dictionaryWithObject:(id)objectforKey:(id <NSCopying>)key; // objectForKey,根据键取值。
+ (instancetype)dictionaryWithObjectsAndKeys:(id)firstObject,...;

@{@"zs": @"zhangsan",@"ls": @"lisi",@"ww": @"Wangwu"};

 键值对集合的特点

 1. 字典存储的时候,必须是"键值对"的方式来存储(同时键不要重复)
   
 2. 键值对中存储的数据是"无序的".
   
 3. 键值对集合可以根据键, 快速获取数据

- (NSUInteger)count;   
  
返回字典的键值对数目

- (id)objectForKey:(id)aKey;
根据key取出value

NSDictionary的遍历

快速遍历

for (NSString *keyindict) { }

Block遍历

[dict enumerateKeysAndObjectsUsingBlock:^(id key,id obj,BOOL*stop) {

   

}];

注意:字典遍历的顺序是不一定的。不能通过索引来获取值,所以不能使用for循环来遍历.

NSDictionary的创建
以前

[NSDictionary dictionaryWithObjectsAndKeys:@"Jack", @"name", @"男", @"sex", nil];

现在

@{@"name": @"Jack", @"sex" : @"男”};

NSDictionary获取元素
以前

[dict objectForKey:@"name”];

现在

dict[@"name”];

NSMutableDictionary的增添

  NSMutableDictionary *dict = [NSMutableDictionary dictionary];


添加键值对

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

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

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


移除键值对

    [dict removeObjectForKey:  ]

0 0