OC中的字典NSDictionary與NSMutableDictionary

不可變字典(NSDictionary)與可變字典(NSMutableDictionary)

由于json數據格式與OC中的字典和數組很像,因此經常使用字典來接收解析服務器端請求回的json數據。

一、不可變字典的創建

1)初始化方法創建

NSDictionary *dic1 = [[NSDictionary alloc] initWithObjectsAndKeys:@"張三", @"name", @"男", @"gender", @"16", @"age", nil];

2)便利構造器創建

NSDictionary *dic2 = [NSDictionary dictionaryWithObjectsAndKeys:@"大連", @"city", @"75", @"id",@"www.dalian.com/shahekou.jpg", @"image", nil];

3) 字面量方式

NSDictionary *dic3 = @{@"date" : @"2016-03-21", @"content" : @"春分", @"imageURL" : @"www.baidu.com/image/spring.png"};

ps:字典是無序的,鍵值對不分先后

二、字典常用方法

// 1) 獲取字典中鍵值對個數
NSUInteger num = [dic1 count];

NSLog(@"%lu", num);

// 2) 獲取字典中所有的鍵
NSArray *array = dic1.allKeys; // [dic1 allKeys]

NSLog(@"%@", array);

// 3) 獲取字典中所有的值
NSArray *array2 = [dic1 allValues]; // dic1.allValues

NSLog(@"%@", array2);

// 4) 獲取指定的key所對應的value
NSString *str = [dic2 objectForKey:@"image"];

NSLog(@"%@",str);

三、可變字典的創建

1) 初始化方法創建

NSMutableDictionary *dic1 = [[NSMutableDictionary alloc] initWithObjectsAndKeys:@"諾維茨基", @"name", @"37", @"age", @"大前鋒", @"location", nil];

2)便利構造器創建

NSMutableDictionary *dic2 = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"庫里", @"name", @"勇士", @"team", @"得分后衛", @"location", nil];

3)字面量創建

NSMutableDictionary *dic3 = [@{@"姓名" : @"易建聯", @"位置" : @"中鋒", @"年齡" : @"29"} mutableCopy];

四、可變字典的方法

// 1) 根據 Key 值修改 value
[dic3 setObject:@"周鵬" forKey:@"姓名1"]; // 本方法不僅可以修改已經存在的key的value,還可以添加新的 鍵值對兒.

NSLog(@"%@", [dic3 objectForKey:@"姓名"]);

// 2) 移除指定key的鍵值對兒
[dic3 removeObjectForKey:@"姓名1"];
NSLog(@"%@", dic3);


// 3) 移除所有鍵值對兒
[dic3 removeAllObjects];
NSLog(@"%@", dic3);
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容