天天看點

NSDictionary 簡介

字典是一個無序的集合,也可稱之為鍵值對。與數組不同的是字典可以通過特定的key快速查找到想要的值,而不用周遊字典。是以一個唯一的key隻能對應一個值,而多個key可以對應同一個值。字典分為不可變字典(NSDictionary)和可變字典(NSMutableDictionary)。本篇文章隻介紹NSDictionary。。。

1、不可變字典的建立(注意書寫規範)

1>初始化建立字典

NSDictionary* dict1=[[NSDictionary alloc]initWithObjectsAndKeys:@"v1",@"k1",@"v2",@"k2",@"v3",@"k3", nil]; //執行個體方法

 NSDictionary* dict2=[NSDictionary dictionaryWithObjectsAndKeys:@"v1",@"k1",@"v2",@"k2",@"v3",@"k3", nil]; //類方法
           

2>通過鍵值數組建立字典

NSDictionary* dict3=[[NSDictionary alloc]initWithObjects:@[@"v1",@"v2",@"v3"] forKeys:@[@"k1",@"k2",@"k3"]]; //執行個體方法

    NSDictionary* dict4=[NSDictionary dictionaryWithObjects:@[@"v1",@"v2",@"v3"] forKeys:@[@"k1",@"k2",@"k3"]];//類方法
           

3>通過已有的字典建立

NSDictionary* dict5=[[NSDictionary alloc]initWithDictionary:dict1];//執行個體方法

NSDictionary* dict6=[NSDictionary dictionaryWithDictionary:dict1];//類方法
           

4>最簡單的方式

NSDictionary *[email protected]{@"k1":@"v1", @"k2":@"v2", @"k3":@"v3"};
           

2、周遊字典

NSDictionary *[email protected]{@"k1":@"v1", @"k2":@"v2", @"k3":@"v3"};

//通過key查找value
NSString* obj=[dict1 objectForKey:@"k3"];
NSLog(@"value:%@", obj);

//擷取所有的key
NSArray *keys=[dict1 allKeys];
NSLog(@"所有的鍵:%@", keys);

//擷取所有的值
NSArray *values=[dict1 allValues];
NSLog(@"所有的值:%@", values);

//快速枚舉法周遊  **枚舉的是key**
for(id obj in dict1)
{
    NSLog(@"key:%@", obj); //鍵
    NSLog(@"value:%@", [dict1 objectForKey:obj]); //值
}

//枚舉器法  objectEnumerator 枚舉的是值
NSEnumerator *enumerator=[dict1 objectEnumerator];
id obj;
while(obj=[enumerator nextObject])
{
   NSLog(@"枚舉器法obj:%@",obj);
}

//枚舉器法 枚舉鍵
NSEnumerator *kenumerator=[dict1 keyEnumerator];
id key;
while(key=[kenumerator nextObject])
{
   NSLog(@"鍵枚舉器法key:%@",key);
}

//字典的長度
NSUInteger count=dict1.count;
NSLog(@"字典一共有%lu個鍵值對",count);
           

列印結果

NSDictionary 簡介