// 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));
NSString *value = dict2[@"key1"];
NSLog(@"dict2中关键字key1对应的值为%@",value);
NSArray *aryKey = [dict2 allKeys];
NSLog(@"字典dict2的所有关键字是%@",aryKey);
for (NSString *key in [dict2 allKeys]) {
NSString *value = [dict2 objectForKey:key];
NSLog(@"关键字key为%@对应的值为%@",key,value);
}
NSLog(@"dict2的所有值为%@",[dict2 allValues]);
NSArray *keys = [dict2 allKeysForObject:@"value1"];
NSLog(@"dict2值为value1对应的所有关键字为%@",keys);
// 3.NSMutableDictionary 可变字典
NSDictionary *dict1 = [NSDictionary dictionaryWithObject:@"123" forKey:@"key3"];
NSDictionary *dict2 = [NSDictionary dictionaryWithObjectsAndKeys:@"value1",@"key1",@"value2",@"key2" ,nil];
NSMutableDictionary *mutableDict = [NSMutableDictionary dictionaryWithDictionary:dict2];
[mutableDict setValue:@"wu dang" forKey:@"attribute"];
NSLog(@"mutableDict = %@", mutableDict);
[mutableDict addEntriesFromDictionary:dict1];
NSLog(@"mutableDict = %@", mutableDict);
[mutableDict setDictionary:dict1];
NSLog(@"mutableDict = %@", mutableDict);
[mutableDict setValue:@"shan jia" forKey:@"hobby"];
NSLog(@"mutableDict = %@", mutableDict);
[mutableDict removeObjectForKey:@"key2"];
NSLog(@"mutableDict = %@", mutableDict);
NSArray *array = @[@"key1",@"key2",@"key3"];
[mutableDict removeObjectsForKeys:array];
NSLog(@"mutableDict = %@", mutableDict);
[mutableDict removeAllObjects];
NSLog(@"mutableDict = %@", mutableDict);
// 4.NSDictionary 和 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);
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 {
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);
NSData *data = [jsonString dataUsingEncoding:NSASCIIStringEncoding];
NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:nil];
NSLog(@"dict = %@",dict);
}
#pragma mark NSMutableDictionary 可变字典
- (void)createMutableDictionary {
NSDictionary *dict1 = [NSDictionary dictionaryWithObject:@"123" forKey:@"key3"];
NSDictionary *dict2 = [NSDictionary dictionaryWithObjectsAndKeys:@"value1",@"key1",@"value2",@"key2" ,nil];
NSMutableDictionary *mutableDict = [NSMutableDictionary dictionaryWithDictionary:dict2];
[mutableDict setValue:@"wu dang" forKey:@"attribute"];
NSLog(@"mutableDict = %@", mutableDict);
[mutableDict addEntriesFromDictionary:dict1];
NSLog(@"mutableDict = %@", mutableDict);
[mutableDict setDictionary:dict1];
NSLog(@"mutableDict = %@", mutableDict);
[mutableDict setValue:@"shan jia" forKey:@"hobby"];
NSLog(@"mutableDict = %@", mutableDict);
[mutableDict removeObjectForKey:@"key2"];
NSLog(@"mutableDict = %@", mutableDict);
NSArray *array = @[@"key1",@"key2",@"key3"];
[mutableDict removeObjectsForKeys:array];
NSLog(@"mutableDict = %@", mutableDict);
[mutableDict removeAllObjects];
NSLog(@"mutableDict = %@", mutableDict);
}
#pragma mark NSDictionary的操作
- (void)operationDictionary {
NSDictionary *dict2 = [NSDictionary dictionaryWithObjectsAndKeys:@"value1",@"key1",@"value2",@"key2",nil];
NSInteger count = dict2.count;
NSLog(@"dict2的数量为%@",@(count));
NSString *value = dict2[@"key1"];
NSLog(@"dict2中关键字key1对应的值为%@",value);
NSArray *aryKey = [dict2 allKeys];
NSLog(@"字典dict2的所有关键字是%@",aryKey);
for (NSString *key in [dict2 allKeys]) {
NSString *value = [dict2 objectForKey:key];
NSLog(@"关键字key为%@对应的值为%@",key,value);
}
NSLog(@"dict2的所有值为%@",[dict2 allValues]);
NSArray *keys = [dict2 allKeysForObject:@"value1"];
NSLog(@"dict2值为value1对应的所有关键字为%@",keys);
}
#pragma mark NSDictionary字典的初始化(常见的几种方式)
- (void)createDictionary {
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