字典,在现实生活中我们都用过。那么,在编程中,字典又是怎么使用的呢?
比如,一个名叫jack的老外,他现在居住在北京。这在编程中又是如何体现的呢?怎样查找这个人的信息呢?
NSDictionary *dict = [NSDictionary dictionaryWithObject:@"jack" forKey:@"name"];
通过name我们就能找到jack这个人。
NSArray *keys = @[@"name", @"address"];
NSArray *objects = @[@"jack", @"北京"];
在OC里面,字典存储的东西都是键值对,name——>jack,address——>北京。
NSDictionary *dict = [NSDictionary dictionaryWithObject:objects forKeys:keys]; // 这是在字典中查找的方法
NSDictionary *dict = [NSDictionary dictionaryWithObject:objectsAndKeys:@"jack", @"name", @"北京", @address]; // 字典
这是以前在字典的查找方法和表达方式。右面有一大串东西,给我们增加很大的工作量。
在Xcode跟新之后,将我们程序员的很多工作量都简化了,不需要话费大量时间和精力放在这些垃圾代码上了。
NSDictionary *dict = @{@"name" : @"jack", @"address" : @"北京"};
这样是不是可读性更好了,工作量更少了。
想找jack——> dict[@"name"]; 就能实现。
如何查找我们知道了,但是我们想添加、删减我们的字典,又该如何操作呢?
添加键值对:[dict setObject:@"rose" forKey:@"name"];
[dict setObject:@"南京" forKey:@"address"];
如果我们这样操作: [dict setObject:@"jim" forKey:@"name"]; 那么jim会覆盖上面的rose。一个name只能对应一个名称。多次赋值会覆盖以前的名称。
移除键值对:[dict removeObject forKey:(id)];
字典是不允许有相同的key,但是允许有相同的value(object),而且字典中存储的东西是无序的。
那么,我们如何遍历整个字典呢。
[dict enumerateKeysAndObjectsUsingBlock: ^(id key, id obj , BOOL *stop)
{
NSLog(@"%@ - %@", key, obj);
*stop =YES;
}];
有个问题:我们程序员每天都要写很多代码,那么,我们怎样才能知道自己以前写了多少代码呢,如何计算我们代码的行数?
---------------------- ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------