OC中字典的操作大全,赶紧收藏吧
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
/**
* 字典的创建
*/
//alloc创建字典
NSArray *array = [NSArray arrayWithObjects:@"welcome",@"to",@"beijing",nil];
NSNumber *number = [NSNumber numberWithFloat:200];
NSDictionary *dic1 = [[NSDictionary alloc]initWithObjectsAndKeys:array,@"name1",numb<span style="white-space:pre"> </span>er,@"score",@"vlalue",@"key", nil];
//类方法创建字典
NSDictionary *dic2 = [NSDictionary dictionaryWithObjectsAndKeys: array,@"name2",numb<span style="white-space:pre"> </span>er,@"score2",@"vlaue2",@"key2",nil];
//打印的调用方法,可省略直接打印
NSLog(@"%@",[dic1 description]);
NSLog(@"%@",dic2);
/**
* 字典的常用方法
*/
//1.字典中的元素个数
NSUInteger count = [dic1 count];
NSLog(@"%lu",count);
//2.访问字典中的元素
NSArray *arr = [dic1 objectForKeyedSubscript:@"name1"];
//NSLog(@"%@",arr);
//3.获取到所有的key
NSArray *keys = [dic2 allKeys];
//NSLog(@"%@",keys);
//4.获取到所有的value
NSArray *value = [dic1 allValues];
//NSLog(@"%@",value);
[dic1 objectForKey:@"key"];
/**
* xcode4.4以后对字典创建和访问的优化
*/
//1.创建字典
NSDictionary *dic = @{@"names":array,@"scores":number,@"xcode4.4":@"创建字典"};
//2.通过key可以获取value
NSNumber *num = dic[@"scores"];
NSLog(@"%@",num);
/**
* 可变字符串
*/
//1.创建可变字符串
NSArray *marray = [NSArray arrayWithObjects:@"this",@"is",@"book",nil];
NSMutableDictionary *mdic = [[NSMutableDictionary alloc]initWithObjectsAndKeys:marra<span style="white-space:pre"> </span>y,@"this",@"hello",@"world", nil];
NSLog(@"%@",mdic);
//2.向字典中添加元素,保持key不变,只改变value则可以替换原有的值
NSNumber *mnumber = [NSNumber numberWithFloat:100];
NSString *user = @"785304434@qq.com";
[mdic setObject:mnumber forKey:@"key"];
[mdic setObject:user forKey:@"email"];
//3.删除元素
//根据key,移除元素
[mdic removeObjectForKey:@"name"];
//移除所有的元素
[mdic removeAllObjects];
NSLog(@"%@",mdic);
/**
* 遍历字典
*/
//1.快速遍历
for (id keys in dic2) {
id value = [dic2 objectForKeyedSubscript:keys];
NSLog(@"key:%@,value:%@",keys,value);
}
//2.常规遍历
NSArray *keys1 = [dic1 allKeys];
for (int i = 0; i < [keys1 count]; i++) {
id key1 = [keys1 objectAtIndexedSubscript:i];
id value1 = [dic1 objectForKey:key1];
NSLog(@"key:%@,value:%@",key1,value1);
}
}
return 0;
}
输出结果如下: