zoukankan      html  css  js  c++  java
  • OBJEctc中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;
    }
    
  • 相关阅读:
    .net core webapi +ddd(领域驱动)+nlog配置+swagger配置 学习笔记(2)
    .net core webapi +ddd(领域驱动)+nlog配置+swagger配置 学习笔记(1)
    css规范
    eclipse for python
    CentOs时间不同步问题
    SecureCRT怎么将本级文件上传到CentOS
    tcp客户端程序开发
    C++STL小结
    食用指北
    Hello, world!
  • 原文地址:https://www.cnblogs.com/gcb999/p/3053385.html
Copyright © 2011-2022 走看看