存储对象都必须是id(对象类型)不能使基础类型

NSDictionary *scores=[[NSDictionary alloc]initWithObjectsAndKeys:@"89",@"english",@"70",@"computer",nil];

*scores=[[NSDictionary alloc]initWithObjectsAndKeys:[NSNumber numberWithInt:89],@"english"];

scores=[NSDictionary dictionaryWithObjectsAndKeys:]用法与initWithObjectsAndKeys;

NSNumber *englishScore=[scores objectForKey:@"english"];

集合的遍历

方法一

for(NSString *key int socres)

{

// 通过每个元素的key访问value

NSLog(@"%@:%d",key,[[score objetForKey:key] intValue]);

}

方法二

[socres enumerateKeysAndObjectsUsingBloc:^(id key, id obj,BOOL *stop)

{

NSNumber *num=(NSNumber *)obj;

NSLog(@"%@:%d",key,[num intValue]);

}

方法三

NSArray *keysArray = [scores allKeys];

for(int i=0; i<[scores count]; i++)

{

NSLog(@"%@:%d",[keysArray objectAtIndex:i);

NSLog(@"")----;

}

字典排序

NSArray *keysArray=[scores keysSortedByValueUsingSelector:@selector(compare:)];

 字典:
//key 一般使用字符串
//value 可以使用任意对象类型
// NSDictionary *scores = [[NSDictionary alloc]initWithObjectsAndKeys:@"89",@"english",@"70",@"computer", nil];
//
// NSLog(@"%@",scores); NSDictionary *scores2=[NSDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithInt:],@"english",
[NSNumber numberWithInt:],@"maths",
[NSNumber numberWithInt:],@"computer"
, nil]; // NSLog(@"%ld",[scores2 count]);
// NSLog(@"%@",scores2);
NSNumber *englishScores = [scores2 objectForKey:@"english"];
NSLog(@"%@",englishScores);
NSLog(@"%d",[englishScores intValue]);
// //遍历方法1:for in
for (NSString *key in scores2) {
//通过每个元素的key访问value
NSLog(@"%@:%d",key,[[scores2 objectForKey:key] intValue]);
}
// //遍历方法2:for
NSArray *keysArray = [scores2 allKeys];
for (int i=; i<[scores2 count]; i++) {
NSString *key = [keysArray objectAtIndex:i];
NSLog(@"%@:%d",key,[[scores2 objectForKey:key]intValue]);
}
//
//排序
NSArray *keys = [scores2 keysSortedByValueUsingSelector:@selector(compare:)];
NSLog(@"%@",keys);
}
return ;

ie

Object-C-NSDictionary的更多相关文章

  1. JSON Object(如NSDictionary,NSArray)转化为JSON格式的NSString #iOS开发

    NSString *string = [self jsonObjectToJSONString:inputDataDic]; -(NSString*)jsonObjectToJSONString:(i ...

  2. 如何删除NSDictionary或NSArray中的NSNull

    前段时间与某公司的技术交流,被问到一个问题,如何删除NSDictionary中的NSNull.当时在纸上写,以前太依赖Xcode编译器了,以至于方法名都写不全,最终也没写出来,我想我肯定被鄙视的体无完 ...

  3. Foundation框架之NSArray、NSDictionary、NSSet及其Mutable类型

    Foundation框架之NSArray.NSDictionary.NSSet及其Mutable类型 目录 概述——对Foundation框架集合类的理解 NSArray NSDictionary N ...

  4. NSDictionary和NSMaptable, NSArray,NSSet,NSOrderedSet和NSHashTable的区别

    NSSet, NSDictionary, NSArray是Foundation框架关于集合操作的常用类, 和其他标准的集合操作库不同, 他们的实现方法对开发者进行隐藏, 只允许开发者写一些简单的代码, ...

  5. [Objective-C] 009_Foundation框架之NSDictionary与NSMutableDictionary

    在Cocoa Foundation中NSDictionary和NSMutableDictionary 用于对象有序集合,NSDictionary和NSMutableDictionary 与 NSArr ...

  6. 【原】AFNetworking源码阅读(三)

    [原]AFNetworking源码阅读(三) 本文转载请注明出处 —— polobymulberry-博客园 1. 前言 上一篇的话,主要是讲了如何通过构建一个request来生成一个data tas ...

  7. iOS:以前笔记,未整理版。太多了,先放着吧。。。。。。。

    1. -(void)timetick { _d = 0; NSTimer *newtime =[NSTimer scheduledTimerWithTimeInterval:1 target:self ...

  8. iOS开发系列--音频播放、录音、视频播放、拍照、视频录制

    --iOS多媒体 概览 随着移动互联网的发展,如今的手机早已不是打电话.发短信那么简单了,播放音乐.视频.录音.拍照等都是很常用的功能.在iOS中对于多媒体的支持是非常强大的,无论是音视频播放.录制, ...

  9. iOS---观察者模式之--->KVO

    文章结构如下: Why? (为什么要用KVO) What? (KVO是什么) How? ( KVO怎么用) More (更多细节) 原理 自己实现KVO 在我的上一篇文章浅谈 iOS Notifica ...

  10. AFNetworking 3.0 源码解读(三)之 AFURLRequestSerialization

    这篇就讲到了跟请求相关的类了 关于AFNetworking 3.0 源码解读 的文章篇幅都会很长,因为不仅仅要把代码进行详细的的解释,还会大概讲解和代码相关的知识点. 上半篇: URI编码的知识 关于 ...

随机推荐

  1. linux逻辑卷管理 (LVM)(转)

    1.什么是 LVM LVM 是逻辑盘卷管理(Logical Volume Manager)的简称,它是 Linux 环境下对磁盘分区进行管理的一种机制,LVM 是建立在硬盘和分区之上的一个逻辑层,来为 ...

  2. 安装coreseek与sphinx遇见的问题

    1.问题 using config file 'etc/csft.conf'...indexing index 'xml'...WARNING: source 'xml': xmlpipe2 supp ...

  3. OSI互联数据包封装与解封装过程

    当我们在七层协议最上层,主机A想和其它主机通信, 比如telnet到主机B,各层都为数据打包后再封装上自己能识别的数据标签,现在我们只说四层以下的通信过程. .当一个高层的数据包到达传输层,由于tel ...

  4. js遍历json对象

    原生js遍历json对象 遍历json对象: 无规律: <script> var json = [ {dd:'SB',AA:'东东',re1:123}, {cccc:'dd',lk:'1q ...

  5. IE 兼容一问题一小记

    记录一下上一周做的一个门户网站!因为兼容问题折腾了我一天时间,今天有空了就把其中坑记录一下! 1.轮换效果不能显示出1.2.3... (ie7不行,大于ie7的可以),原因就是因为,js对象的最一个个 ...

  6. 【转】Ant与Ivy的安装

    一.简介 Apache Ant,是一个将软件编译.测试.部署等步骤联系在一起加以自动化的一个工具,大多用于Java环境中的软件开发.更多介绍 Apache Ivy,是一个管理项目依赖的工具.更多介绍请 ...

  7. numpy.ndarray的赋值操作

    mat=zeros((3,4)) #生成一个3行4列全部元素为0的矩阵 mat[1,:]=111 #从第1行第0列开始,一直到最后一列,赋值为1,效果与mat[1,0:3]相同,前置0可以省略,最后的 ...

  8. 畅通工程 HDU - 1863 最小生成树模板

    两个模板: kruskal #include<stdio.h> #include<queue> #include<algorithm> #include<io ...

  9. Oracle核心技术之 SQL TRACE

    1.SQL TRACE说明: 参数类型 布尔型 缺省值 false 参数类别 动态 取值范围 True|false 2.类型 1)sql trace参数:alter system改变对全局进程影响,如 ...

  10. 自己封装framworks上传到应用商店报错

    参考链接: http://www.jianshu.com/p/60ac3ded34a0 http://ikennd.ac/blog/2015/02/stripping-unwanted-archite ...