——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培训、期待与您交流! ——-
1918

被折叠的 条评论
为什么被折叠?



