iOS開發學習專題-基礎知識(三)NSDictionary字典NSMutableDictionary可變字典NSDictionary字典和json轉換詳細使用方式
阿新 • • 發佈:2019-02-12
本文主要講解的是不可變字典NSDictionary可變字典NSMutableDictionary字典NSDictionary和Json轉換詳細使用方式包括型別和值之間的轉換
文章是博主原創,轉載請標明出處http://blog.csdn.net/werctzzz/article/details/71713293
首先來看看不可變的字典
然後是可變字典的方法
#pragma mark NSDictionary 不可變字典 // NSDictionary用於鍵值對映 // 1.字典的初始化(常見的幾種方式) NSDictionary *dic1 = [NSDictionary dictionaryWithObject:@"@123" forKey:@"key1"]; NSDictionary *dic2 = [NSDictionary dictionaryWithObjectsAndKeys:@"value1",@"key1",@"value2",@"key2" ,nil]; NSDictionary *dic3 = [NSDictionary dictionaryWithDictionary:dic1]; NSDictionary *dic4 = @{@"key1": @"value1",@"key2": @"value2"}; NSString * path = @"路徑"; NSDictionary *dic5 = [NSDictionary dictionaryWithContentsOfFile:path]; // 2.字典的常用操作 // key - value ;輸入的時候 [值 - 鍵] NSLog(@"%@",dic1); //輸出的時候 為 [鍵 - 值]; //2.值得獲取和遍歷 // 2.1 NSArray *key = [dic1 allKeys]; NSLog(@"%@", key); // 2.2獲取所有value值 NSArray *value = [dic1 allValues]; NSLog(@"%@", value); // 2.3通過key查詢value NSString *name = [dic1 objectForKeyedSubscript:@"name"]; NSLog(@"%@", name);//查詢name key 對應的 value 值 // 2.4根據allkeys陣列獲取字典中所有的key - value對 //間接遍歷 for (NSString *key1 in key) { NSString *value = [dic1 objectForKey:key1]; NSLog(@"%@ = %@:", key1 ,value); } //直接遍歷 for (NSString *key1 in dic1) { NSString *value = [dic1 objectForKey:key1]; NSLog(@"%@ = %@", key1 ,value); }
然後是可變字典的方法
最後就是常用的字典和json互相轉換的方法,很實用~#pragma mark NSMutableDictionary 可變字典 //NSMutableDictionary //1.建立初始化 NSMutableDictionary * mdic = [NSMutableDictionary dictionaryWithDictionary:dic2]; //通過不可變的dic1傳來的值,建立可變的字典 //2.新增鍵值對 和 設定 // 2.1新增一個指定鍵值對 [mdic setValue:@"wu dang" forKey:@"attribute"]; NSLog(@"%@", mdic); // 2.2像字典中新增整個字典物件 [mdic addEntriesFromDictionary:dic1]; // 2.3把字典內容設定與指定字典的內容相同 [mdic setDictionary:dic1]; //3.修改key 對應的value [mdic setValue:@"shan jia" forKey:@"hobby"]; NSLog(@"%@", mdic); //4.刪除鍵值對 // 4.1刪除制定鍵值對 [mdic removeObjectForKey:@"sex"]; NSLog(@"%@", dic2); // 4.2刪除在陣列中包含的指定key的對應的值 NSArray *array = @[@"key1",@"key2",@"key3"]; [mdic removeObjectsForKeys:array]; // 4.3刪除字典中的所有物件 [mdic removeAllObjects];
#pragma mark 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]; // 2.json轉成字典 NSData *data = [jsonString dataUsingEncoding:NSASCIIStringEncoding]; NSDictionary * jsonObject = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:nil];