#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
@autoreleasepool
{
//可变字典NSMutabkeDictionary
//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];
//使用枚举器
NSEnumerator *enu=[[mDictionary4 allKeys] objectEnumerator];
NSString *key;
while (key=[enu nextObject])
{
NSLog(@"%@=%@",key,mDictionary4[key]);
}
//可变字典独有初始化方法
NSMutableDictionary *mDictionary5=[NSMutableDictionary dictionaryWithCapacity:10];
//创建了初始大小为10各位键值对的可变字典 同样的参数num只是初始的大小,提高
//程序效率。并没有现在字典的大小,如果继续往里面添加数据,字典的元素会继续增加(无符号整形)
//从本地读取字典
NSMutableDictionary *mDictionary6=[NSMutableDictionary dictionaryWithContentsOfFile:@"文件的路径"];
//从网络读取字典
NSMutableDictionary *mDictionary7=[NSMutableDictionary dictionaryWithContentsOfURL:[NSURL URLWithString:@"http://www.baidu.com"]];
//操作字典
//增删改查
//增加
[mDictionary5 setValue:@"Rick" forKey:@"name"];//第一个天key第二个天value
[mDictionary5 setValue:@25 forKey:@"age"];
//改(如果原来字典中已有了key这个关键字,那么这次新加的值就会覆盖掉原来关键字(键)key对应的值)
[mDictionary5 setValue:@"Jack" forKey:@"name"];
//使用新语法去改
mDictionary5[@"name"]=@"Leo";
//删除指定key的对象
[mDictionary5 removeObjectForKey:@"name"];//ForKey指定某个key
//删除所有对象
[mDictionary5 removeAllObjects];
NSLog(@"dic5=%@",mDictionary5);
//例子
NSMutableDictionary *mDictionary8=[NSMutableDictionary dictionaryWithObjectsAndKeys:@"Rice",@"name1",@25,@"age",@"GZ",@"address",@"Rice",@"name2",@"Rice",@"name3", nil];//Rice为value name为key
NSEnumerator *enu1=[[mDictionary8 allKeys]objectEnumerator];
//NSEnumerator *enu2=[mDictionary8.allKeys objectEnumerator];//可以的
NSString *key1;
while (key1=[enu1 nextObject])
{
NSLog(@"%@=%@",key1,mDictionary8[key1]);
}
while (key1=[enu1 nextObject])
{
if (mDictionary8[key1]==[mDictionary8 objectForKey:@"Rice"])
{
NSLog(@"key=%@",key1);
}
}
NSArray *key8=mDictionary8.allKeys;//这是数组不是NSString
for (NSString *key in key8)
{
NSString *string;
if ([mDictionary8[key] isKindOfClass:[NSNumber class]])
{
int a=[mDictionary8[key] intValue];
string=[NSString stringWithFormat:@"%d",a];
}
else
{
string=mDictionary8[key];
}
if ([string isEqualToString:@"Rice"])
{
NSLog(@"Key=%@",key);
}
}
NSArray *key9=mDictionary8.allKeys;
for (NSString *key in key9)
{
if ([mDictionary8[key] isEqual:@"Rice"])
{
NSLog(@"key=%@",key);
}
}
}
return 0;
}