OC视频笔记-4

来源:互联网 发布:微博软件下载 编辑:程序博客网 时间:2024/05/16 03:18

字典的基本概念

Foundation中的字典(NSDictionary,NSMutableDictionary)是由键-值对组成的数据集合。正如,我们在字典里查找单词的定义一样。通过Key(键),查找对应Value(值),Key通常是字符串对象,也可以是其他任意类型对象。在一个字典对象中,key的值必须是唯一的。此外,字典对象的键和值不可以为空(nil),如果需要在一个字典对象中表示一个空值,可以使用NSNull对象。


不可变字典-NSDictionary

字典的初始化

集合之中只可以用对象或者实例,而不可以使用普通的数据类型。


字典的常用方法

//获取字典数量

NSInteger count = [dic count];

//通过key获取对应的value对象

NSObject *valueObj = [dic objectForKey:@“key”];

//将字典的key转换为一个枚举对象,用于遍历

NSEnumerator *enumerator = [dic keyEnumerator];

//获取所有键的集合

NSArray *keys = [dic allKeys];

//获取所有值的集合

NSArray *values = [dic allValues];


//遍历数组   遍历性能高

 for(NSString *string in array) {

     NSLog(@"found %@",string);

 }


//当不确定数组元素的类型时,可以选择用id

  for(id string in array) {

      NSLog(@"found %@",string);

  }


/*****************字典的创建*****************/

NSDictionary *dic1 = [NSDictionary dictionaryWithObject:@"value" forKey:@"k1"];

NSDictionary *dic2 = [NSDictionary dictionaryWithObjectsAndKeys:@"v1",@"k1",@"v2",@"k2",@"v3",@"k3",@"v4",@"k4",  @"v5",@"k5",nil];

NSDictionary *dic3 = [NSDictionary dictionaryWithDictionary:dic1];

NSLog(@"dic1:%@",dic1);

NSLog(@"dic2:%@",dic2);

NSLog(@"dic3:%@",dic3);


 /******************可变字典*****************/

NSMutableDictionary *dic5 = [NSMutableDictionary  dictionaryWithObjectsAndKeys:@"v1",@"key1",@"v2",@"key2",nil];   

NSDictionary *dic6 = [NSDictionary dictionaryWithObject:@"v3" forKey:@"key3"];   

//向字典对象5中添加整个字典对象6  

[dic5 addEntriesFromDictionary:dic6];  

NSLog(@"dic5:%@",dic5); 


//向字典5中追加一个新的key3和value3

[dic5 setValue:@"value3" forKey:@"key3"];

NSLog(@"dic5:%@",dic5);


//初始化一个空的可变字典

NSMutableDictionary *dic7 = [NSMutableDictionary dictionary];

 

//将空字典7的内容设置为与字典5对象相同

[dic7 setDictionary:dic5];

NSLog(@"dic7:%@",dic7);

       

[dic5 removeObjectForKey:@"key1"];

NSArray *arraya = [NSArray arrayWithObjects:@"key1",nil];

[dic5 removeObjectsForKeys:arraya];

[dic5 removeAllObjects];


遍历字典

1)快速枚举

for(id key in dic){

    id obj = [dic objectForKey:key];

    NSLog(@“%@“,obj);

}


2)字典的一般的枚举

NSArray *keys = [dic allKeys];

int length = [keys count];

for(int i = 0; i < length; i++) {

   id key = [keys objectAtIndex:i];

   id obj = [dic objectForKey:key];

      NSLog(“%@“,obj);

}

0 0
原创粉丝点击