#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
//可变字典 NSMutableDictionary
//1.初始化方法
//创建一个空的字典
NSMutableDictionary *mDictionary1 = [NSMutableDictionary dictionary];
//创建一个有一个键值对的可变字典
NSMutableDictionary *mDictionary2 = [NSMutableDictionary dictionaryWithObject:@"Rick" forKey:@"name"];
//创建一个有多个键值对的可变字典
NSMutableDictionary *mDictionary3 = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"Rick",@"name",@25,@"age",@"GZ",@"address", nil];
//通过另一个字典创建一个字典
NSMutableDictionary *mDictionary4 = [NSMutableDictionary dictionaryWithDictionary:mDictionary3];
// NSArray *array = mDictionary4.allKeys;
// for (NSString *key in array) {
// NSLog(@"%@ = %@",key,mDictionary4[key]);
// }
NSEnumerator *enumerator = [[mDictionary4 allKeys] objectEnumerator];
NSString *key ;
while (key = [enumerator nextObject])
{
NSLog(@"%@ = %@",key,mDictionary4[key]);
}
//可变字典独有的初始化方法
NSMutableDictionary *mDictionary5 = [NSMutableDictionary dictionaryWithCapacity:10];
//创建了初始大小为10个键值对的可变字典。同样的,参数 num 只是初始的大小,提高程序效率,并没有限制字典的大小,如果继续往里面添加数据,字典的元素个数会继续增加。
//从本地读取字典
NSMutableDictionary *mDictionary6 = [NSMutableDictionary dictionaryWithContentsOfFile:@""];
//从网络读取字典
NSMutableDictionary *mDictionary7 = [NSMutableDictionary dictionaryWithContentsOfURL:[NSURL URLWithString:@""]];
//操作字典
//增
[mDictionary5 setValue:@"Rick" forKey:@"name"];
[mDictionary5 setValue:@25 forKey:@"age"];
//改(如果原来字典中已有了key这个关键字,那么这次新加的值就会覆盖掉原来关键字(键)key对应的值)
[mDictionary5 setValue:@"Jack" forKey:@"name"];
//新语法改
mDictionary5[@"name"] = @"Leo";
//删除指定key的对象
[mDictionary5 removeObjectForKey:@"name"];
//删除所有对象
[mDictionary5 removeAllObjects];
NSLog(@"dic5 = %@",mDictionary5);
//例子
NSMutableDictionary *mDictionary8 = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"Rick",@"name1",@25,@"age",@"GZ",@"address",@"Rick",@"name2",@"Rick",@"name3", nil];
NSEnumerator *en = [[mDictionary8 allKeys] objectEnumerator];
NSString *key1;
while (key1 = [en nextObject]) {
NSLog(@"%@ = %@",key1, mDictionary8[key1]);
}
NSArray *keyD8 = mDictionary8.allKeys;
for (NSString *key in keyD8)
{
//
// NSString *string ;
// if ([mDictionary8[key] isKindOfClass:[NSNumber class]]) {
// int i = [mDictionary8[key] intValue];
// string = [NSString stringWithFormat:@"%d",i];
// }
// else
// {
// string = mDictionary8[key];
// }
NSString *string = mDictionary8[key];
if ([string isEqual:@"Rick"])
{
NSLog(@"key = %@",key);
}
}
}
return 0;
}
2015-12-16 09:54:19.626 OC_06_02[7083:253673] name = Rick
2015-12-16 09:54:19.628 OC_06_02[7083:253673] age = 25
2015-12-16 09:54:19.629 OC_06_02[7083:253673] address = GZ
2015-12-16 09:54:19.643 OC_06_02[7083:253673] dic5 = {
}
2015-12-16 09:54:19.644 OC_06_02[7083:253673] age = 25
2015-12-16 09:54:19.644 OC_06_02[7083:253673] name2 = Rick
2015-12-16 09:54:19.645 OC_06_02[7083:253673] name1 = Rick
2015-12-16 09:54:19.645 OC_06_02[7083:253673] name3 = Rick
2015-12-16 09:54:19.645 OC_06_02[7083:253673] address = GZ
2015-12-16 09:54:19.646 OC_06_02[7083:253673] key = name2
2015-12-16 09:54:19.646 OC_06_02[7083:253673] key = name1
2015-12-16 09:54:19.647 OC_06_02[7083:253673] key = name3
Program ended with exit code: 0