文档章节

Objective-C ---NSDictionary(梳理整理)

都英俊兮
 都英俊兮
发布于 2017/04/15 22:15
字数 689
阅读 14
收藏 0

NSDictionary

NSDictionary是无序的集合(NSArray是有序的)

key->value键值对,也就是说字典是通过key来找值的( NSArray是通过下标找值的)

1.创建方式

    a.initWithDictionary

    b.[NSDictionary dictionaryWithObjects:<#(NSArray *)#> forKeys:<#(NSArray *)#>

    c.NSDictionary* dictionary = @{key1 : value1 ,  key2 : value2 ,  key3 : value3 ……}<<NSArray为[]<-中括号>>

2.常用的属性

    a.count

    b.id obj = dictionary[key]

    c.allValues, allKeysForObject

3.遍历  直接推荐forin方式

for (NSString *key in dictionary) {
    id value = dictionary[key];
    NSLog(@"Value: %@ for key: %@", value, key);
}

子类NSMutableDictionary

增: set***** 对键值对(一般就这个了); add***** 增加一个字典内容;  

删: remove*******

改: set******(和增加是同一个方法,有的时候就修改value  没有的话就会添加一对键值对)

=========================================

比较

   1.字典相对与数组的优点  (查询)

    字典获取元素速度比数组快

2.获取元素的方式

数组通过下标获取指定元素的内容

字典通过key来获取指定元素的内容

3.遍历删除的问题 􏳸􏴋 forin  enum block 均不能在遍历的同时  删除元素  for 可以,条件设置为i--

 

苹果官方文档学习(部分在这  全部请至官文文档查看

class NSDictionary

The NSDictionary class declares the programmatic interface to objects that manage immutable associations of keys and values. Use this class or its subclass NSMutableDictionary when you need a convenient and efficient way to retrieve data associated with an arbitrary key. NSDictionary creates static dictionaries, and NSMutableDictionary creates dynamic dictionaries. (For convenience, the term dictionary refers to any instance of one of these classes without specifying its exact class membership.)

NSDictionary类声明的对象,管理固定的键-值关联的编程接口。使用这个类或其子类nsmutabledictionary当你需要检索与任意密钥相关的数据,方便和有效的方式。NSDictionary创建静态字典,和nsmutabledictionary创建动态字典。为了方便起见,术语词典指的是这些类中的任何一个实例,而没有指定其确切的类成员。

Symbols

1.1 Creating a Dictionary(类方法创建)

1.2 Initializing an NSDictionary Instance(对象方法创建)

1.3 Creating Key Sets for Shared-Key Optimized Dictionaries

1.4 Counting Entries(count)

1.5 Comparing Dictionaries(比较是否相等)

1.6 Accessing Keys and Values(访问 Keys and Values)

  1. allKeys
  2. allKeysForObject:
  3. allValues
  4. objectForKey:
  5. objectForKeyedSubscript:
  6. objectsForKeys:notFoundMarker:
  7. valueForKey:

1.7 Enumerating Dictionaries(枚举字典)

1.8 Sorting Dictionaries(排序字典的keys)

  1. keysSortedByValueUsingSelector:
  2. keysSortedByValueUsingComparator:
  3. keysSortedByValueWithOptions:usingComparator:

1.9 Filtering Dictionaries(过滤字典)

  1. keysOfEntriesPassingTest:
  2. keysOfEntriesWithOptions:passingTest:

1.10 Storing Dictionaries(储存字典)

  1. writeToFile:atomically:
  2. writeToURL:atomically:

1.11 Accessing File Attributes(访问文件属性)

1.12 Creating a Description(创建一个描述)

1.13 Initializers(initWithCoder:)

1.14 Instance Methods

  1. keyEnumerator
  2. getObjects:andKeys:count:

Relationships

2.1 Inherits From NSObject

2.2 Conforms To  NSCopying  NSMutableCopying  NSFastEnumeration  NSSecureCoding

 

class NSMutableDictionary

Symbols

这一部份写得有点简单 。有兴趣可以去苹果官方文档查看

1.1 Creating and Initializing a Mutable Dictionary(创建)

1.2 Adding Entries to a Mutable Dictionary(增)

1.3 Removing Entries From a Mutable Dictionary(删除)

1.4 Initializers

1.5 Instance Methods

1.6 Type Methods

Relationships

2.1 Inherits From   NSDictionary

© 著作权归作者所有

都英俊兮
粉丝 2
博文 36
码字总数 11379
作品 0
深圳
iOS工程师
私信 提问
Objective-C ---NSArray(梳理整理)

NSArray NSArray 和NSDictionary都是oc中的集合类,什么叫做集合,就是装对象的对象 NSArray是有序的 NSDictionary是无序的 1.创建方式 a.[[NSArray alloc] initWithArray:arr1];(用本身创建...

都英俊兮
2016/05/18
20
0
Objective-C 之 Literals(字面量)

今天整理一下关于Objective-C Literals的内容,Literals翻译成字面量或者字面值,就是直接被写到源代码中的值。这不是一个陌生的概念,我们在写程序的时候能频繁的见到。我们很早就见过NSStr...

XMAN2017
2013/05/05
0
9
Objective-C - Foundation框架初探

Objective-C - Foundation框架初探 Foundation之于Objective-C就好比Java中SDK类库之于Java。 这个框架提供了基本的Objective-C的类,最重要的根类,NSObject,它定义了基本的对象行为。 框架...

开发小菜鸟一枚
2013/11/06
0
0
Advanced+Apple+Debugging(13)

这篇文章主要介绍将lldb Python模块的知识和Objective-C 的运行时结合起来可以做的事情. 当LLDB来解析精简过的可执行文件(一个没有DWARF调试信息的可执行文件)时, LLDB没有栈记录的符号化的信...

土匪猿
2018/06/09
0
0
M13OrderedDictionary

M13OrderedDictionary 介于 NSArray 和 NSDictionary 之间,它有一个有序的对象列表和关键字,所有这些都能被索引和关键字访问。它仅仅完整的实现了 Objective C 的有序目录类,遵从苹果的子...

叶秀兰
2014/02/17
180
0

没有更多内容

加载失败,请刷新页面

加载更多

利用mybatis generator生成实体类、Mapper接口以及对应的XML文件

项目中通常会遇到数据的持久化,如果是采用mybatis的orm,就会涉及到生成xml的问题,刚好mybatis官网提供了这么个插件MyBatis Generator,效果简直是棒呆。 1. 首先需要在build.gradle文件中...

啊哈关关
今天
2
0
SpringSocial相关的知识点

使用SprigSocial开发第三方登录 核心类 ServiceProvider(AbstractOauth2ServiceProvider):主要负责实现server提供商(例如QQ,微信等共有的东西),默认实现类是AbstractOauth2ServiceProvider...

chendom
今天
4
0
Java并发之AQS详解

一、概述   谈到并发,不得不谈ReentrantLock;而谈到ReentrantLock,不得不谈AbstractQueuedSynchronizer(AQS)!   类如其名,抽象的队列式的同步器,AQS定义了一套多线程访问共享资源...

群星纪元
昨天
4
0
Fabric-sdk-java最新教程

Fabric Java SDK是Fabric区块链官方提供的用于Java应用开发的SDK,全称为Fabric-sdk-java,网上可用资料不多,本文列出了精心整理的针对Fabric Java SDK的最新精选教程。 如果希望快速掌握F...

汇智网教程
昨天
3
0
react 子组件监听props 变化

componentWillReceiveProps //已经被废弃 getDerivedStateFromProps// 推荐使用//如果条件不存在必须要返回null static getDerivedStateFromProps(props, current_stat...

一箭落旄头
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部