NSDictionary用法

介绍的api

 

//
//  main.m
//  NSDiconary
//
//  Created by ganchaobo on 13-4-29.
//  Copyright (c) 2013年 ganchaobo. All rights reserved.
//
 
#import <Foundation/Foundation.h>
void   CreateDic(){
     //第一种创建字典,创建多个key-value
     NSDictionary  *dic=[ NSDictionary  dictionaryWithObjectsAndKeys:@ "k1" ,@ "v1"
                        ,@ "k2" ,@ "v2" ,@ "k3" ,@ "v3" , nil ];
     //NSLog(@"%@",dic);
     //第二种创建字典 创建一对 key-value
     NSDictionary  *dic1=[ NSDictionary  dictionaryWithObject:@ "VV"  forKey:@ "KK" ];
   //  NSLog(@"%@",dic1);
     //第三种创建多对间值
     NSArray  *key=[ NSArray  arrayWithObjects:@ "K1" ,@ "K2" ,@ "K3" , nil ];
     NSArray  *value=[ NSArray  arrayWithObjects:@ "V1" ,@ "V2" ,@ "V3" , nil ];
     NSDictionary  *dic2=[ NSDictionary  dictionaryWithObjects:key forKeys:value];
     
     //NSLog(@"%@",dic2);
     NSDictionary  *dic3=[ NSDictionary  dictionaryWithDictionary:dic2];
     NSLog (@ "%@" ,dic3);
}
 
void  DicMethod(){
     NSDictionary  *dic=[ NSDictionary  dictionaryWithObjectsAndKeys:@ "K1" ,@ "V1" ,@ "K2" ,@ "V2" ,@ "K3" ,@ "V3" , nil ];
      NSDictionary  *dic1=[ NSDictionary  dictionaryWithObjectsAndKeys:@ "K1" ,@ "V1" ,@ "K1" ,@ "V2" ,@ "K3" ,@ "V3" , nil ];
     NSLog (@ "%zi" ,[dic count]); //字典种右多少对key-value
     NSLog (@ "%@" ,[dic allKeys]); //字典种的所有keys
     NSLog (@ "%@" ,[dic allValues]); //字典中所有的values
     NSLog (@ "%i" ,[dic isEqualToDictionary:dic1]);
     NSLog (@ "%@" ,[dic objectForKey:@ "V1" ]);
     NSArray  *arr=[dic1 allKeysForObject:@ "K1" ]; //通过value找对应多个key
     
     NSArray  *arr1=[ NSArray  arrayWithObjects:@ "V1" ,@ "V2" ,@ "VG" , nil ];
     NSArray  *ARR= [dic objectsForKeys:arr1 notFoundMarker:@ "BB" ];
     NSLog (@ "%@" ,ARR);
     
     
}
 
void  WriteFile(){
 
     
     NSDictionary  *dic=[ NSDictionary  dictionaryWithObjectsAndKeys:@ "k1" ,@ "v1" ,@ "k2" ,@ "v2" , nil ];
     [dic writeToFile:@ "/Users/ganchaobo/Desktop/2.txt"  atomically: YES ];
     
}
void  ReadFile(){
     NSDictionary  *dic=[ NSDictionary  dictionaryWithContentsOfFile:@ "/Users/ganchaobo/Desktop/2.txt" ];
     NSLog (@ "%@" ,dic);
}
 
 
//第一次遍历
void  bianli1(){
     NSDictionary  *dic=[ NSDictionary  dictionaryWithObjectsAndKeys:@ "k1" ,@ "v1" ,@ "k2" ,@ "v2" , nil ];
     NSArray  *arr=[dic allKeys];
     for ( id  key in arr){
         id  obj=[dic objectForKey:key];
         NSLog (@ "Key-->%@  value--->%@" ,key,obj);
     }
}
//第二种遍历
void  bianli2(){
        NSDictionary  *dic=[ NSDictionary  dictionaryWithObjectsAndKeys:@ "k1" ,@ "v1" ,@ "k2" ,@ "v2" , nil ];
     NSEnumerator  *e=  [dic keyEnumerator];
     id  key= nil ;
     while (key=[e nextObject]){
         id  obj=[dic objectForKey:key];
     NSLog (@ "Key-->%@  value--->%@" ,key,obj);
     }
}
 
//第三种遍历
void  bianli3(){
     NSDictionary  *dic=[ NSDictionary  dictionaryWithObjectsAndKeys:@ "k1" ,@ "v1" ,@ "k2" ,@ "v2" , nil ];
     [dic enumerateKeysAndObjectsUsingBlock:^( id  key, id  value, BOOL  *stop){
      NSLog (@ "Key-->%@  value--->%@" ,key,value);
     }];
}
/////////key排序
void  sort1(){
     NSDictionary  *dic=[ NSDictionary  dictionaryWithObjectsAndKeys:@ "1" ,@ "AC" ,@ "3" ,@ "AF" ,@ "2" ,@ "AE" , nil ];
    NSArray  *arr= [dic keysSortedByValueUsingSelector: @selector (compare:)];
     //通过value排序,返回key集合
     NSLog (@ "%@" ,arr);
}
 
void  sort2(){
     
     NSDictionary  *dic=[ NSDictionary  dictionaryWithObjectsAndKeys:@ "1" ,@ "AC" ,@ "3" ,@ "AF" ,@ "2" ,@ "AE" , nil ];
     NSLog (@ "%@" ,dic);
}
//NSMustableDictionary
void  CreateMutableDic(){
 
     NSMutableDictionary  *mutableArray=[ NSMutableDictionary  dictionaryWithObjectsAndKeys:@ "V1" ,@ "K1" ,@ "V2" ,@ "K2" , nil ];
     NSMutableDictionary  *dic=[ NSMutableDictionary  dictionaryWithObject:@ "AA"  forKey:@ "BB" ];
     //[mutableArray addEntriesFromDictionary:dic];//在字典种添加字典
     //[mutableArray removeAllObjects];
     //[mutableArray removeObjectForKey:@"K1"];//通过key移除键值对
     //[mutableArray setDictionary:dic];//重新设置字典
     //[mutableArray setObject:@"VV" forKey:@"K1"];//通过字典的key设置value
     //[mutableArray setObject:[NSNull null] forKey:@"K1"];//通过key 设置value 为null
     NSArray  *arr=[ NSArray  arrayWithObjects:@ "K1" ,@ "K3"  , nil ];
     [mutableArray removeObjectsForKeys:arr]; //删除数组中相同的key对应的key-value
     NSLog (@ "%@" ,mutableArray);
}
 
int  main( int  argc, const  char  * argv[])
{
 
     @autoreleasepool  {
         
         CreateMutableDic();
         
     }
     return  0;
}

猜你喜欢

转载自lipeixiaoyu.iteye.com/blog/2228379