程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> [Objective-C]OC中字典基本概念和常用方法(NSDictionary和NSMutableDictionary

[Objective-C]OC中字典基本概念和常用方法(NSDictionary和NSMutableDictionary

編輯:關於C語言

一:字典的基本概念

Foundation中的字典(NSDictionary,NSMutableDictionary)是由鍵-值對組成的數據集合.正如,我們在字典裡查找單詞的定義一樣.

通過key(鍵),查找的對應的value(值),key通常是字符串對象,也可以是其他任意類型對象.在一個字典對象中,key的值必須是唯一的.

此外,字典對象的鍵和值不可以為空(nil),如果需要在字典中加入一個空值,可以加入NSNull對象

二:不可變字典-NSDictionary

1:初始化(以一個元素和多個元素進行初始化):

//以一個鍵值對象 進行初始化

        NSDictionary *dict1=[NSDictionary dictionaryWithObject:numObj1 forKey:@"key1"];
        NSLog(@"%@",dict1);
        //以多個元素進行初始化
        NSDictionary *dict2=[NSDictionary dictionaryWithObjectsAndKeys:numObj1, @"key1",numObj2,@"key2", nil];
        NSLog(@"%@",dict2);
 2:獲取字典的數量
	

//獲取字典的數量

NSInteger count=[dict2 count];

NSLog(@"%ld",count);

3:根據key獲取相應的value對象

//根據key獲取相應的value對象

        NSString *value=[dict2 objectForKey:@"key1"];
        NSLog(@"%@",value);
4:把字典的key轉換成枚舉對象用於遍歷

 

NSEnumerator *enumerator=[dict2 keyEnumerator];
5:獲取所有的key集合

//獲取所有的key集合

        NSArray *keys= [dict2 allKeys];
        NSLog(@"%@",keys);
6:獲取所有的value集合

 

//獲取所有的value集合

        NSArray *values=[dict2 allValues];
        NSLog(@"%@",values);
三:可變字典NSMutableDictionary繼承自NSDictionary

 

1:初始化字典

 

  //初始化字典
        NSMutableDictionary *mutableDic=[[NSMutableDictionary alloc]initWithObjectsAndKeys:@"v1",@"k1",@"v2",@"k2",@"v3",@"k3",@"v4",@"k4",@"v5",@"k5", nil];
2:向字典中添加指定的字典

 

//向一個字典中添加一個字典

        NSDictionary *dict4=[NSDictionary dictionaryWithObject:@"v6" forKey:@"k6"];
        [mutableDic addEntriesFromDictionary:dict4];
        NSLog(@"%@",mutableDic);
3:向字典中添加value和key

 

 

//向字典中添加value和key
        [mutableDic setValue:@"object" forKey:@"key"];
4:創建空的字典,然後設置新的一個字典
 //創建空的字典,然後設置新的一個字典,把會之前的字典全部覆蓋掉
        NSMutableDictionary *mutableDict2=[NSMutableDictionary dictionary];
        [mutableDict2 setDictionary:mutableDic];
        NSLog(@"%@",mutableDict2);
5:刪除指定key的value值

 

 

 //移除指定key的value值
        [mutableDict2 removeObjectForKey:@"k4"];
        NSLog(@"%@",mutableDict2);
6:刪除移除key集合的value值

 

 

//刪除一組key的value值
        NSArray *arrayKeys=[NSArray arrayWithObjects:@"k1",@"k2",@"k3", nil];
        [mutableDict2 removeObjectsForKeys:arrayKeys];
        NSLog(@"%@",mutableDict2);
7:刪除字典中所有的value

 

//刪除字典中所有的數據

        [mutableDict2 removeAllObjects];
        NSLog(@"%@",mutableDict2);
四:枚舉遍歷

 

1:一般遍歷

//一般遍歷

        NSArray *allKeys=[mutableDic allKeys];
        for (NSInteger i=0; i<[allKeys count]; i++) {
            NSString *obj=[mutableDic objectForKey:[allKeys objectAtIndex:i]];
            
            NSLog(@"%@",obj);
        }

 

2:快速枚舉

//快速遍歷

     for (id key in mutableDic) {
        NSString *object=[mutableDic objectForKey:key];
        NSLog(@"%@",object);
    }
3:迭代器枚舉

 

 

  //枚舉器
      NSEnumerator *enumerator1= [mutableDic keyEnumerator];
        id key=[enumerator1 nextObject];
        while (key) {
            id object=[mutableDic objectForKey:key];
            NSLog(@"%@",object);
            key=[enumerator1 nextObject];
        }

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved