OBJEct-c中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;
}

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM