您的位置:首页 > 职场人生

黑马程序员——OC基础---Foundation之字典

2015-11-06 21:47 567 查看
——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-

一、字典的初始化

1.不可变字典初始化

示例代码:

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
@autoreleasepool {
// insert code here...
/*
字典:
key ----> value
索引 ---->文字内容
*/
NSArray *key = @[@"name",@"address"];
NSArray *objects = @[@"king",@"shenzhen"];

//创建一个字典
NSDictionary *dirt = [NSDictionary dictionaryWithObjects:objects forKeys:key];

//创建一个字典
NSDictionary *dirt1 = [NSDictionary dictionaryWithObjectsAndKeys:@"king",@"name",@"shenzhen",@"address", nil];

id obj = [dirt objectForKey:@"name"];
id obj1 = dirt1[@"address"];
NSLog(@"%@",obj);
NSLog(@"%@",obj1);
}
return 0;
}


运行结果:



2.可变字典初始化

示例代码:

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
@autoreleasepool {
// insert code here...
//定义可变字典
NSMutableDictionary *dirt = [NSMutableDictionary dictionary];

//添加键值对
[dirt setObject:@"king" forKey:@"name"];
[dirt setObject:@"深圳" forKey:@"adress"];

//移除键值对
//        [dirt removeObjectForKey:@"name"];
NSLog(@"%@",dirt[@"name"]);
}
return 0;
}


运行结果:



二、字典遍历

示例代码:

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
@autoreleasepool {
// insert code here...
NSDictionary *dic1=[NSDictionary dictionaryWithObjectsAndKeys:
@"1",@"a",
@"2",@"b",
@"3",@"c",
@"2",@"d",
nil];
//遍历1
for (id key in dic1) {//注意对于字典for遍历循环的是key
NSLog(@"%@=%@",key,[dic1 objectForKey:key]);
}
/*结果:
d=2
b=2
c=3
a=1
*/

//遍历2
NSEnumerator *enumerator=[dic1 keyEnumerator];//还有值的迭代器[dic1 objectEnumerator]
id key=nil;
while (key=[enumerator nextObject]) {
NSLog(@"%@=%@",key,[dic1 objectForKey:key]);

}
/*结果:
d=2
b=2
c=3
a=1
*/

//遍历3
[dic1 enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) {
NSLog(@"%@=%@",key,obj);
}];
/*结果:
d=2
b=2
c=3
a=1
*/
}
return 0;
}


注意:同数组一样,不管是可变字典还是不可变字典初始化元素后面必须加上nil以表示结束。

——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: