Objective-c 字典對象,objective-c字典

來源:互聯網
上載者:User

Objective-c 字典對象,objective-c字典

  oc 中的 NSDictionary 的作用同 java 中的字典類相同,提供了 “鍵-值”對的組合。比如,是用字典類實現對學生姓名和學號的存放,編號是一個鍵(唯一性),姓名是值。它的方法有:

  

 

  下面通過例子來具體說明它的用法:

   1)構建字典

  

 1 #import <Foundation/Foundation.h> 2  3 int main(int argc , const char *argv[]){ 4     @autoreleasepool{ 5         NSDictionary *dicti1 = [NSDictionary     dictionaryWithObjectsAndKeys:@"zhangsan",@"1",@"lisi",@"2",@"wangwu",@"3", nil]; 6         NSEnumerator *keynum = [dicti1 keyEnumerator]; 7         for(NSString *key in keynum) 8             NSLog(@"key = %@ , value = %@",key,[dicti1 objectForKey:key]); 9         10         NSLog(@"----------------------------");11         NSDictionary *dicti2 = [[NSDictionary alloc]initWithObjectsAndKeys:@"zhangsan",@"1",@"lisi",@"2",@"wangwu",@"3", nil];12         keynum = [dicti2 keyEnumerator];13         for(NSString *key in keynum)14             NSLog(@"key = %@ , value = %@",key,[dicti2 objectForKey:key]);15         16         NSLog(@"----------------------------");17         NSDictionary *dicti3 = @{@"1":@"zhangsan",@"2":@"lisi",@"3":@"wangwu"};18         keynum = [dicti3 keyEnumerator];19         for(NSString *key in keynum)20             NSLog(@"key = %@  , value = %@",key,[dicti3 objectForKey:key]);21         22         NSLog(@"------------------------------");23         NSArray *keyarray = @[@"1",@"2",@"3"];24         NSArray *valuearray = @[@"zhangsan",@"lisi",@"wangwu"];25         NSDictionary *dicti4 = [NSDictionary dictionaryWithObjects:valuearray forKeys:keyarray];26         keynum = [dicti4 keyEnumerator];27         for(NSString *key in keynum)28             NSLog(@"key = %@ , value = %@",key,[dicti4 objectForKey:key]);29         30     }31     return 0;32 }

   

  2)字典的遍曆

  

 1 #import <Foundation/Foundation.h> 2  3 int main(int argc , const char *argv[]){ 4     @autoreleasepool { 5         NSDictionary *dicti = [NSDictionary dictionaryWithObjectsAndKeys:@"zhangsan",@"1",@"lisi",@"2",@"wangwu",@"3", nil]; 6         NSEnumerator *number = [dicti keyEnumerator]; 7         for(NSString *key in number) 8             NSLog(@"key = %@ , value = %@",key,[dicti objectForKey:key]); 9         10         NSLog(@"----------------------------");11         NSArray *keyarray = [dicti allKeys];12         for(NSString *key in keyarray)13             NSLog(@"key = %@ , value = %@",key,[dicti objectForKey:key]);14         15         NSLog(@"-----------------------------");16         for(NSString *key in  dicti)17             NSLog(@"key = %@ , value = %@",key,[dicti objectForKey:key]);18         19         NSLog(@"-----------------------------");20         [dicti enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) {21             NSLog(@"key = %@  ,value = %@",key,obj);22         }];23     }
    return 0;24 }

3)  檔案的讀取

 1 #import <Foundation/Foundation.h> 2  3 int main(int argc , const char *argv[]){ 4     @autoreleasepool { 5         NSDictionary *dicti = [NSDictionary dictionaryWithObjectsAndKeys:@"zhangsan",@"1",@"lisi",@"2",@"wangnwu",@"3",nil]; 6          7         NSString *filename = @"dicti.txt"; 8         BOOL iswrite = [dicti writeToFile:filename atomically:YES]; 9         if(iswrite)10             NSLog(@"write to file ok");11         else12             NSLog(@"write to file error");13         14         NSDictionary *dicti2 = [NSDictionary dictionaryWithContentsOfFile:filename];15         NSLog(@"dicti2 = %@",dicti2);16         17     }
    return 0;18 }

  4) 尋找

  

 1 #import <Foundation/Foundation.h> 2  3 int main(int argc , const char *argv[]) 4 { 5     @autoreleasepool { 6         NSDictionary  *dicti = [NSDictionary dictionaryWithObjectsAndKeys:@"zhangsan",@"1",@"lisi",@"2",@"wangwu",@"3",@"zhangsan",@"4",nil]; 7          8         NSArray *keyarray = [dicti allKeys];     // 尋找所有索引值 9         NSLog(@"%@",keyarray);10         11         NSArray *valuearray = [dicti allValues];  // 尋找所有值12         NSLog(@"%@",valuearray);13         14         NSString *value = [dicti objectForKey:@"1"];   // 按索引值尋找15         NSLog(@"value = %@",value);16         17         value = dicti[@"2"];18         NSLog(@"value = %@",value);19         20         NSArray *keyarray2 = @[@"1",@"2",@"3"];    // 利用數組的方式尋找21         NSArray *vlauearray2 = [dicti objectsForKeys:keyarray2 notFoundMarker:@"nil"];22         NSLog(@"vlauearray2 = %@",vlauearray2);23         24         NSArray *keyarray3 = [dicti allKeysForObject:@"zhangsan"];25         NSLog(@"keyarray3 = %@",keyarray3);26         27         NSDictionary *dicti2 = [dicti dictionaryWithValuesForKeys:keyarray2];28         NSLog(@"dicti2 = %@",dicti2);29     }30     return 0;31 }

 5) 排序

  

 1 #import <Foundation/Foundation.h> 2  3  4 int main(int argc,char **argv){ 5     @autoreleasepool { 6         NSDictionary *dicti = [NSDictionary dictionaryWithObjectsAndKeys:@"zhangsan",@"2",@"lisi",@"3",@"wangwu",@"1",@"zhangsan",@"4",nil]; 7         NSLog(@"dicti = %@",dicti); 8          9         NSDictionary *dicti2 = [NSDictionary dictionaryWithObjectsAndKeys:@"zhangsan",@1,@"lisi",@2,@"wangu",@3, nil];10         NSLog(@"dicti2 = %@",dicti2);11         12         NSArray *array = [dicti2 keysSortedByValueUsingSelector:@selector(compare:)];13         for(NSNumber *key in array)14             NSLog(@"key = %@,value = %@",key,dicti2[key]);15     }16     return 0;17 }

  2. 同樣字典對象中也存在可變字典(NSDictionary),下面我們來通過一個例子來說明它的用法:

  

 

  代碼舉例:

  

 1 #import <Foundation/Foundation.h> 2  3  4 int main(int argc,char **argv){ 5     @autoreleasepool { 6         NSMutableDictionary *mdicti = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"zhangsan",@"1",@"lisi",@"2",@"wangwu",@"3",nil]; 7          8         [mdicti setValue:@"zhaoliu" forKey:@"4"];    // 如果 key 不存在就添加,key 存在就修改 9         NSLog(@"mdicti = %@",mdicti);10         11         [mdicti setValue:@"zzz" forKey:@"1"];12         NSLog(@"mdicti = %@",mdicti);13         14         mdicti[@"5"] = @"bbb";15         NSLog(@"mdicti = %@",mdicti);16         17         NSDictionary *dicti = [NSDictionary dictionaryWithObjectsAndKeys:@"aaa",@"11",@"bbb",@"12",@"ccc",@"13",nil];18         [mdicti addEntriesFromDictionary:dicti];19         NSLog(@"dicti = %@",mdicti);20         21         [mdicti removeObjectForKey:@"1"];     // 刪除22         NSLog(@"mdicti = %@",mdicti);23         24         NSArray *array = @[@"11",@"12",@"13"];25         [mdicti removeObjectsForKeys:array];26         NSLog(@"mdicti = %@",mdicti);27         28         [mdicti removeAllObjects];  // 刪除所有的29         NSLog(@"%@",mdicti);30     }31     return 0;32 }

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.