// 1.NSDictionary字典的初始化(常见的几种方式)
NSDictionary *dict1 = [NSDictionary dictionaryWithObject:@"123" forKey:@"key1"];
NSDictionary *dict2 = [NSDictionary dictionaryWithObjectsAndKeys:@"value1",@"key1",@"value2",@"key2",nil];
NSDictionary *dict3 = [NSDictionary dictionaryWithDictionary:dict1];
NSDictionary *dict4 = @{@"key1": @"value1",@"key2": @"value2"};
NSDictionary *dict5 = [[NSDictionary alloc] initWithDictionary:dict1];
NSDictionary *dict6 = [[NSDictionary alloc] initWithObjectsAndKeys:@"value1",@"key1",@"value2",@"key2",nil];
NSLog(@"dict1 = %@",dict1);
NSLog(@"dict2 = %@",dict2);
NSLog(@"dict3 = %@",dict3);
NSLog(@"dict4 = %@",dict4);
NSLog(@"dict5 = %@",dict5);
NSLog(@"dict6 = %@",dict6);
复制代码
// 2.NSDictionary的操作
NSDictionary *dict2 = [NSDictionary dictionaryWithObjectsAndKeys:@"value1",@"key1",@"value2",@"key2",nil];
//字典中元素个数
NSInteger count = dict2.count;
NSLog(@"dict2的数量为%@",@(count));
//根据key(索引)找value(值)
NSString *value = dict2[@"key1"];
NSLog(@"dict2中关键字key1对应的值为%@",value);
//获取字典中的所有的key
NSArray *aryKey = [dict2 allKeys];
NSLog(@"字典dict2的所有关键字是%@",aryKey);
//获取字典中所有的value
//第一种写法
for (NSString *key in [dict2 allKeys]) {
NSString *value = [dict2 objectForKey:key];
NSLog(@"关键字key为%@对应的值为%@",key,value);
}
//第二种写法
NSLog(@"dict2的所有值为%@",[dict2 allValues]);
//获取某个值value对应的所有键key
NSArray *keys = [dict2 allKeysForObject:@"value1"];
NSLog(@"dict2值为value1对应的所有关键字为%@",keys);
复制代码
// 3.NSMutableDictionary 可变字典
//1.创建初始化
NSDictionary *dict1 = [NSDictionary dictionaryWithObject:@"123" forKey:@"key3"];
NSDictionary *dict2 = [NSDictionary dictionaryWithObjectsAndKeys:@"value1",@"key1",@"value2",@"key2" ,nil];
NSMutableDictionary *mutableDict = [NSMutableDictionary dictionaryWithDictionary:dict2];
//2.添加键值对 和 设定
// 2.1添加一个指定键值对
[mutableDict setValue:@"wu dang" forKey:@"attribute"];
NSLog(@"mutableDict = %@", mutableDict);
// 2.2像字典中添加整个字典对象
[mutableDict addEntriesFromDictionary:dict1];
NSLog(@"mutableDict = %@", mutableDict);
// 2.3把字典内容设置与指定字典的内容相同
[mutableDict setDictionary:dict1];
NSLog(@"mutableDict = %@", mutableDict);
//3.修改key 对应的value
[mutableDict setValue:@"shan jia" forKey:@"hobby"];
NSLog(@"mutableDict = %@", mutableDict);
//4.删除键值对
// 4.1删除制定键值对
[mutableDict removeObjectForKey:@"key2"];
NSLog(@"mutableDict = %@", mutableDict);
// 4.2删除在数组中包含的指定key的对应的值
NSArray *array = @[@"key1",@"key2",@"key3"];
[mutableDict removeObjectsForKeys:array];
NSLog(@"mutableDict = %@", mutableDict);
// 4.3删除字典中的所有对象
[mutableDict removeAllObjects];
NSLog(@"mutableDict = %@", mutableDict);
复制代码
// 4.NSDictionary 和 json 的互相转化
// 1.字典转成json
NSDictionary *jsondic = [NSDictionary dictionaryWithObjectsAndKeys:
@"zhang san",@"name",
@"men",@"sex",
@"playgame",@"hobby",
@"347",@"age",nil];
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:jsondic options:NSJSONWritingPrettyPrinted error:nil];
NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
NSLog(@"jsonString = %@",jsonString);
// 2.json转成字典
NSData *data = [jsonString dataUsingEncoding:NSASCIIStringEncoding];
NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:nil];
NSLog(@"dict = %@",dict);
复制代码
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
[self jsonTransformDictionary];
}
#pragma mark NSDictionary 和 json 的互相转化
- (void)jsonTransformDictionary {
// 1.字典转成json
NSDictionary *jsondic = [NSDictionary dictionaryWithObjectsAndKeys:
@"zhang san",@"name",
@"men",@"sex",
@"playgame",@"hobby",
@"347",@"age",nil];
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:jsondic options:NSJSONWritingPrettyPrinted error:nil];
NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
NSLog(@"jsonString = %@",jsonString);
// 2.json转成字典
NSData *data = [jsonString dataUsingEncoding:NSASCIIStringEncoding];
NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:nil];
NSLog(@"dict = %@",dict);
}
#pragma mark NSMutableDictionary 可变字典
- (void)createMutableDictionary {
//NSMutableDictionary
//1.创建初始化
NSDictionary *dict1 = [NSDictionary dictionaryWithObject:@"123" forKey:@"key3"];
NSDictionary *dict2 = [NSDictionary dictionaryWithObjectsAndKeys:@"value1",@"key1",@"value2",@"key2" ,nil];
NSMutableDictionary *mutableDict = [NSMutableDictionary dictionaryWithDictionary:dict2];
//2.添加键值对 和 设定
// 2.1添加一个指定键值对
[mutableDict setValue:@"wu dang" forKey:@"attribute"];
NSLog(@"mutableDict = %@", mutableDict);
// 2.2像字典中添加整个字典对象
[mutableDict addEntriesFromDictionary:dict1];
NSLog(@"mutableDict = %@", mutableDict);
// 2.3把字典内容设置与指定字典的内容相同
[mutableDict setDictionary:dict1];
NSLog(@"mutableDict = %@", mutableDict);
//3.修改key 对应的value
[mutableDict setValue:@"shan jia" forKey:@"hobby"];
NSLog(@"mutableDict = %@", mutableDict);
//4.删除键值对
// 4.1删除制定键值对
[mutableDict removeObjectForKey:@"key2"];
NSLog(@"mutableDict = %@", mutableDict);
// 4.2删除在数组中包含的指定key的对应的值
NSArray *array = @[@"key1",@"key2",@"key3"];
[mutableDict removeObjectsForKeys:array];
NSLog(@"mutableDict = %@", mutableDict);
// 4.3删除字典中的所有对象
[mutableDict removeAllObjects];
NSLog(@"mutableDict = %@", mutableDict);
}
#pragma mark NSDictionary的操作
- (void)operationDictionary {
// 2.NSDictionary的操作
NSDictionary *dict2 = [NSDictionary dictionaryWithObjectsAndKeys:@"value1",@"key1",@"value2",@"key2",nil];
//字典中元素个数
NSInteger count = dict2.count;
NSLog(@"dict2的数量为%@",@(count));
//根据key(索引)找value(值)
NSString *value = dict2[@"key1"];
NSLog(@"dict2中关键字key1对应的值为%@",value);
//获取字典中的所有的key
NSArray *aryKey = [dict2 allKeys];
NSLog(@"字典dict2的所有关键字是%@",aryKey);
//获取字典中所有的value
//第一种写法
for (NSString *key in [dict2 allKeys]) {
NSString *value = [dict2 objectForKey:key];
NSLog(@"关键字key为%@对应的值为%@",key,value);
}
//第二种写法
NSLog(@"dict2的所有值为%@",[dict2 allValues]);
//获取某个值value对应的所有键key
NSArray *keys = [dict2 allKeysForObject:@"value1"];
NSLog(@"dict2值为value1对应的所有关键字为%@",keys);
}
#pragma mark NSDictionary字典的初始化(常见的几种方式)
- (void)createDictionary {
// 1.NSDictionary字典的初始化(常见的几种方式)
NSDictionary *dict1 = [NSDictionary dictionaryWithObject:@"123" forKey:@"key1"];
NSDictionary *dict2 = [NSDictionary dictionaryWithObjectsAndKeys:@"value1",@"key1",@"value2",@"key2",nil];
NSDictionary *dict3 = [NSDictionary dictionaryWithDictionary:dict1];
NSDictionary *dict4 = @{@"key1": @"value1",@"key2": @"value2"};
NSDictionary *dict5 = [[NSDictionary alloc] initWithDictionary:dict1];
NSDictionary *dict6 = [[NSDictionary alloc] initWithObjectsAndKeys:@"value1",@"key1",@"value2",@"key2",nil];
NSLog(@"dict1 = %@",dict1);
NSLog(@"dict2 = %@",dict2);
NSLog(@"dict3 = %@",dict3);
NSLog(@"dict4 = %@",dict4);
NSLog(@"dict5 = %@",dict5);
NSLog(@"dict6 = %@",dict6);
}
@end
复制代码
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END