object-C 之 foundation--NSDictionary

转自:http://simman.cc/article/2243/
//1.dictionary  创建一个空字典
NSDictionary * dic = [NSDictionary dictionary];

//2. 创建并初始化
//  dictionaryWithObject:(id)forkey:(id)<nscopying>
NSDictionary * dic1 = [NSDictionary dictionaryWithObject:@"Apple" forKey:@"Android"];
NSLog(@"%@", dic1);

//3.创建并返回一个字典。
// dictionaryWithObjects:forkeys
NSArray * keys = [NSArray arrayWithObjects:@"name", @"sex", @"age", nil];
NSArray * values = [NSArray arrayWithObjects:@"Apple", @"女", [NSNumber numberWithInt:25], nil];
NSDictionary * dic3 = [NSDictionary dictionaryWithObjects:values forKeys:keys];
NSLog(@"%@", dic3);

//4.使用键-对象对{key1,obj1}、{key2,obj2}...创建词典
//  dictionaryWithObjectsAndKeys
NSDictionary * dic4 = [NSDictionary dictionaryWithObjectsAndKeys:
                       @"apple", @"name",
                       @25,      @"age", nil];
NSLog(@"%@", dic4);

//5. @ 自面量
NSDictionary * dic5 = @{@"name": @"Apple", @"age": @25, @"sex": @"女"};
NSLog(@"@ = %@", dic5);

// allkeys 返回一个数组包含词典中所有的键
NSLog(@"allkeys:%@", [dic5 allKeys]);

//allkeysForObject: 返回一个数组,包含所有对应到给定对象的关键字。
NSArray * aa = @[@"name",@"apple",@"winphone",@"apple"];
NSLog(@"aaaaaaa%@", [dic5 allKeysForObject:aa]);


//allValues:返回一个数组包含词典中所有的值
NSLog(@"allValues:%@", [dic5 allValues]);

//objectForKey:返回指定 key 的 value,若没有这个 key 返回 nil.
NSLog(@"%@", [dic5 objectForKey:@"name"]);

//valueForKey 同样是返回指定 key 的 value。
NSLog(@"%@", [dic5 valueForKey:@"name"]);

//objectsForKeys:< #(NSArray *)#> notFoundMarker:< #(id)#>
// 根据给定的键值数组返回对应的值,如果找不到则返回 notFoundMarker
NSLog(@"%@", [dic5 objectsForKeys:@[@"Name", @"Age", @"Sex"] notFoundMarker:@"NOT"]);


//count:返回字典中的记录数
NSLog(@"count:%zi", [dic5 count]);

//遍历字典中的key
NSLog(@"遍历字典\n\n");
//迭代器遍历
NSEnumerator * keyEnum = [dic5 keyEnumerator];
id key = nil;
while (key = [keyEnum nextObject]) {
    NSLog(@"%@", key);
}

//快速遍历
for (id key in dic5) {
    NSLog(@"%@", key);
}
//遍历字典中的value
for (id key in dic5) {
    NSLog(@"%@", [dic5 valueForKey:key]);
}

//block遍历
[dic5 enumerateKeysAndObjectsUsingBlock:
 ^(id key, id obj, BOOL *stop) {
     NSLog(@"%@ = %@", key, values);
 }];


//可变字典
NSMutableDictionary * dic2 = [NSMutableDictionary dictionary];

//setObject: forKey: 添加value与key,如果key存在则替换该值
[dic2 setValue:@"HH" forKey:@"100"];
[dic2 setValue:@"kj" forKey:@"哈哈"];
NSLog(@"%@", dic2);

//removeObjectForKey 删除词典中指定key对应的记录
[dic2 removeObjectForKey:@"100"];
NSLog(@"%@", dic2);

//removeAllObjects 删除词典中的所有记录
[dic2 removeAllObjects];
NSLog(@"%@", dic2);

NSDictionary * diction1 = [NSDictionary dictionaryWithObjectsAndKeys:
                           @"Apple", @"Name",
                           @15, @"Age",nil];
NSDictionary * diction2 = [NSDictionary dictionaryWithObjectsAndKeys:
                           @"Android", @"Name",
                           @28, @"Age",nil];

//isEqualToDictionary 比较两个字典
if([diction1 isEqualToDictionary:diction2]){
    NSLog(@"diction1 equal diction2");
}else{
    NSLog(@"diction1 not equal diction2");
}


// writeToFile 把字典写入文件(xml格式)
NSString * path = @"/Users/simman/diction1.xml";
[diction1 writeToFile:path atomically:YES];

//dictionaryWithContentsOfFile 读取一个文件返回给新的字典对象
NSDictionary *newDic = [NSDictionary dictionaryWithContentsOfFile:path];
</nscopying>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值