当前位置: 首页 > news >正文

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;
}

 

 

相关文章:

  • 数据库设计-主键的设计
  • 移动开发者如何获取免费流量(转载)
  • Aspose.Pdf for Java 4.0 发布
  • 【parser】stanford-parser demo使用
  • 程序环境基于 IO密集 CPU密集考量 SAN NAS 选择的一点建议
  • SQL Server修改标识列方法
  • Uva 10085 - The most distant state
  • java数据类型与Sql server数据类型对应关系
  • IT职场人生系列之十六:入职(新手篇)
  • 不用+和-实现变量加1的代码
  • Java之线程(0) - 序
  • Scrolling DIV and Canvas flicker on iPhone/iPad touch
  • 使用PPRevealSideViewController创建抽屉式导航
  • Postfix+Dovecot+LAMP+Extmail搭建web邮件系统(三)
  • 个位数为6且被3整除的五位数有多少?
  • [rust! #004] [译] Rust 的内置 Traits, 使用场景, 方式, 和原因
  • 【跃迁之路】【669天】程序员高效学习方法论探索系列(实验阶段426-2018.12.13)...
  • export和import的用法总结
  • Javascripit类型转换比较那点事儿,双等号(==)
  • javascript 总结(常用工具类的封装)
  • miaov-React 最佳入门
  • python_bomb----数据类型总结
  • 从0到1:PostCSS 插件开发最佳实践
  • 分布式熔断降级平台aegis
  • 关于 Cirru Editor 存储格式
  • d²y/dx²; 偏导数问题 请问f1 f2是什么意思
  • 你学不懂C语言,是因为不懂编写C程序的7个步骤 ...
  • 我们雇佣了一只大猴子...
  • ## 临床数据 两两比较 加显著性boxplot加显著性
  • (C语言)球球大作战
  • (floyd+补集) poj 3275
  • (JS基础)String 类型
  • (pytorch进阶之路)扩散概率模型
  • (附源码)apringboot计算机专业大学生就业指南 毕业设计061355
  • (转)linux 命令大全
  • ./和../以及/和~之间的区别
  • .bat批处理(十):从路径字符串中截取盘符、文件名、后缀名等信息
  • .NET 8.0 发布到 IIS
  • .NET Conf 2023 回顾 – 庆祝社区、创新和 .NET 8 的发布
  • .NET 中让 Task 支持带超时的异步等待
  • .NET/C# 使用 SpanT 为字符串处理提升性能
  • .net生成的类,跨工程调用显示注释
  • /etc/skel 目录作用
  • @Validated和@Valid校验参数区别
  • [ JavaScript ] JSON方法
  • [.net 面向对象程序设计进阶] (19) 异步(Asynchronous) 使用异步创建快速响应和可伸缩性的应用程序...
  • [2013AAA]On a fractional nonlinear hyperbolic equation arising from relative theory
  • [BUUCTF]-PWN:[极客大挑战 2019]Not Bad解析
  • [BUUCTF]-Reverse:reverse3解析
  • [BZOJ1178][Apio2009]CONVENTION会议中心
  • [Deepin 15] 编译安装 MySQL-5.6.35
  • [docker] Docker的私有仓库部署——Harbor
  • [HackMyVM]靶场Crossbow
  • [JavaWeb]——过滤器filter与拦截器Interceptor的使用、执行过程、区别
  • [linux]centos7下解决yum install mysql-server没有可用包