OC基本架構之-字典類型,oc基本架構字典

來源:互聯網
上載者:User

OC基本架構之-字典類型,oc基本架構字典

分類:NSDictionary(不可變資料字典)和NSMutableDictionary(可變資料字典)

組成:

(1)由鍵-值(Key-Value)對組成的資料集合
(2)任何對象(id類型)都可以作鍵,但一般是字串
(3)字典內元素無序排列,鍵相同的的元素不能重複(4)可以通過鍵來快速枚舉 一、不可變資料字典(1)字典的建立和初始化
 1    //1、用一個或多個索引值對初始化一個字典對象: 以值,建,值,鍵,...,nil的順序 2     NSDictionary *dict01=[[NSDictionary alloc] initWithObjectsAndKeys:@"key0",@"value0",@"key1",@"value1",@"key2",@"value2", nil]; 3     NSLog(@"dict01:%@",dict01); 4     NSDictionary *dict1=[NSDictionary dictionaryWithObjectsAndKeys:@123,@"key0",@456,@"key1",@678,@"key2", nil]; 5     NSLog(@"dict1:%@",dict1); 6     //2、用兩個數組初始化一個字典,一個key數組,一個value數組,兩個數組大小必須相等,否則Crash 7     NSArray *keyArray=@[@"name0",@"name1",@"name2"]; 8     NSArray *valueArray=@[@"hong",@"wang",@"zhao"]; 9     NSDictionary *dict02=[[NSDictionary alloc] initWithObjects:keyArray forKeys:valueArray];10     NSDictionary *dict2=[NSDictionary dictionaryWithObjects:valueArray forKeys:keyArray];11     NSLog(@"dict02:%@",dict02);12     NSLog(@"dict2:%@",dict2);13     14     //3、用一個資料字典初始化另一個資料字典15     NSDictionary *dict03=[[NSDictionary alloc] initWithDictionary:dict1];16     NSDictionary *dict3=[NSDictionary dictionaryWithDictionary:dict1];17     NSLog(@"dict03:%@",dict03);18     NSLog(@"dict3:%@",dict3);

 

(2)字典對象的建立和儲存-檔案

    //1、儲存字典對象內容到檔案    [dict3 writeToFile:@"/Users/apple/Desktop/tesk.txt" atomically:YES];        //2、從之前儲存的檔案讀取資料到字典對象    NSDictionary *dict4=[NSDictionary dictionaryWithContentsOfFile:@"/Users/apple/Desktop/tesk.txt"];    NSLog(@"dict4:%@",dict4);

(3)字典對象元素的訪問

 1     //1、分別擷取字典的所有鍵、值 2     NSArray *allkeys=[dict1 allKeys]; 3     NSLog(@"allkeys:%@",allkeys); 4     NSArray *allvalues=[dict1 allValues]; 5     NSLog(@"allvalues:%@",allvalues); 6      7     //2、通過指定的key取對應的value對象,沒有這個key的話.返回nil 8     NSNumber *num1 = [dict1 objectForKey:@"key1"]; 9     NSNumber *num2 = [dict1 objectForKey:@"key5"];10     NSLog(@"%@",num1);11     NSLog(@"%@",num2);12     13     //3、擷取字典中索引值對的個數14     NSUInteger paircount=[dict2 count];15     NSLog(@"%lu",paircount);

(4)字典的遍曆

1     for (id key in dict1) {2         id value=[dict1 objectForKey:key];3         NSLog(@"%@=%@",key,value);4     }
2015-04-07 21:17:53.933 NSDictionary[5465:226991] dict01:{ value0 = key0; value1 = key1; value2 = key2;}2015-04-07 21:17:53.934 NSDictionary[5465:226991] dict1:{ key0 = 123; key1 = 456; key2 = 678;}2015-04-07 21:17:53.934 NSDictionary[5465:226991] dict02:{ hong = name0; wang = name1; zhao = name2;}2015-04-07 21:17:53.934 NSDictionary[5465:226991] dict2:{ name0 = hong; name1 = wang; name2 = zhao;}2015-04-07 21:17:53.935 NSDictionary[5465:226991] dict03:{ key0 = 123; key1 = 456; key2 = 678;}2015-04-07 21:17:53.935 NSDictionary[5465:226991] dict3:{ key0 = 123; key1 = 456; key2 = 678;}2015-04-07 21:17:53.937 NSDictionary[5465:226991] dict4:{ key0 = 123; key1 = 456; key2 = 678;}2015-04-07 21:17:53.938 NSDictionary[5465:226991] allkeys:( key1, key0, key2)2015-04-07 21:17:53.938 NSDictionary[5465:226991] allvalues:( 456, 123, 678)2015-04-07 21:17:53.938 NSDictionary[5465:226991] num1:4562015-04-07 21:17:53.938 NSDictionary[5465:226991] num2:(null)2015-04-07 21:17:53.938 NSDictionary[5465:226991] 索引值對個數:32015-04-07 21:17:53.938 NSDictionary[5465:226991] key1=4562015-04-07 21:17:53.938 NSDictionary[5465:226991] key0=1232015-04-07 21:17:53.938 NSDictionary[5465:226991] key2=678運行結果分析

二、可變資料字典

    //可變資料字典初始化

    NSMutableDictionary *mDict1=[NSMutableDictionary dictionaryWithObjectsAndKeys:@"aaa",@"name0",@"bbb",@"name1",@"ccc",@"name2", nil];

    NSLog(@"%@",mDict1);

    

    //1、加入元素到NSMutableDictionary中  (注意:當key值中存在要添加的索引值對中的key值時,則添加,否則覆蓋)

    [mDict1 setObject:@"ddd" forKey:@"name3"];

    [mDict1 setObject:@"eee" forKey:@"name1"];

    NSLog(@"add:  %@",mDict1);

    

    //2、查看 中所有元素個數:

    NSLog(@"%lu",mDict1.count);

    NSNumber *num3 =[mDict1 objectForKey:@"name1"];

    NSLog(@"%@",num3);

    NSNumber *num4 = [mDict1 objectForKey:@"name10"];

    NSLog(@"%@",num4);

    

    //3、添加其他NSMutableDictionary

    [mDict1 setValuesForKeysWithDictionary:dict1];

    NSLog(@"++++%@",mDict1);

    

    //4、根據key值刪除

    [mDict1 removeObjectForKey:@"name1"];

    NSLog(@"---%@",mDict1);

    //5、刪除所有

    [mDict1 removeAllObjects];

    NSLog(@"%@",mDict1);

 

 

2015-04-07 22:12:10.717 NSDictionary[5827:248322] add: { name0 = aaa; name1 = eee; name2 = ccc; name3 = ddd;}2015-04-07 22:12:10.718 NSDictionary[5827:248322] 42015-04-07 22:12:10.718 NSDictionary[5827:248322] eee2015-04-07 22:12:10.718 NSDictionary[5827:248322] (null)2015-04-07 22:12:10.719 NSDictionary[5827:248322] ++++{ key0 = 123; key1 = 456; key2 = 678; name0 = aaa; name1 = eee; name2 = ccc; name3 = ddd;}2015-04-07 22:12:10.719 NSDictionary[5827:248322] ---{ key0 = 123; key1 = 456; key2 = 678; name0 = aaa; name2 = ccc; name3 = ddd;}2015-04-07 22:12:10.719 NSDictionary[5827:248322] {}運行結果分析

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.