一、NSArray和NSMutableArray

(一)NSArray不可变数组

  (1)NSArray的基本介绍

    NSArray是OC中使用的数组,是面向对象的,以面向对象的形式操纵对象,是不可变数组。

    C语言数组有一个缺点即数组中只能存放同种数据类型的元素。

    OC数组只能存放OC对象,不能存放非OC对象,如int,结构体和枚举等。

  (2)NSArray的创建

    

  (3)NSArray的访问

    

  (4)NSArray的遍历

    数组的遍历有以下几种方式:

    首先创建一个数组

       

    方法一:使用for循环遍历

      

    方法二:快速遍历

       

    方法三:使用block遍历

       

      block遍历的深入研究:

      

      每拿到一个元素,就传递给obj,就会调用一次block,并且把当前的元素和索引位置当做参数传递给block。

      注意1:break只使用在两种场合,即switch和循环结构中。

      注意2:stop参数用来停止遍历,其值若为YES,则停止。

(二)NSMutableArray可变数组

  (1)NSMutableArray的基本使用

    注意:NSMutableArray继承自NSArray,几乎拥有NSArray的一切方法。

    

二、NSSet和NSMutableSet

(一)NSSet不可变集合

  基本使用:

  

(二)NSMutableSet可变集合

  基本使用:

   

(三)NSSet和NSArray的对比

  (1)共同点:

    1)都是集合,都能够存放多个对象

    2)只能存放oc对象,不能存放非oc对象类型(如int等基本数据类型和结构体,枚举等)。

    3)本身都不可变,都有一个可变的子类。

  (2)不同点:

    1)NSArray有顺序,NSSet没有顺序

三、NSDictionary和NSMutableDictionary

(一)NSDictionary不可变字典

  (1)介绍

    现实中的字典:根据索引找到具体的内容

    OC中的NSDictionary:根据key找到value。里面存储的东西都是键值对。

  (2)NSDictionary的创建

    

  注意:快速创建字典是编译器特性。

  (3)NSDictionary的访问

     

  (4)NSDictionary的遍历

    

(二)NSMutableDictionary可变字典

  (1)NSMutableDictionary的基本使用

    

  (2)NSMutableDictionary的使用注意

     

  注意:这种快速创建的方式只适用于不可变字典。

四、Foundation练习

  计算代码行数:

  

  

 
 

「Foundation」集合的更多相关文章

  1. 「 深入浅出 」集合Map

    系列文章: 「 深入浅出 」java集合Collection和Map 「 深入浅出 」集合List 「 深入浅出 」集合Set 前面已经介绍完了Collection接口下的集合实现类,今天我们来介绍M ...

  2. 「 深入浅出 」集合Set

    系列文章 「 深入浅出 」集合List 「 深入浅出 」java集合Collection和Map Set继承自Collection接口,不能包含有重复元素.本篇文章主要讲Set中三个比较重要的实现类: ...

  3. 「BZOJ2839」集合计数

    「BZOJ2839」集合计数 题目大意: 一个包含 \(n\) 个数的集合有 \(2^n\) 个子集,从这些子集中取出若干个集合(至少一个),使他们的交集的元素个数恰好为 \(k\),求方案数,答案对 ...

  4. 「 深入浅出 」集合List

    第一篇文章 「 深入浅出 」java集合Collection和Map 主要讲了对集合的整体介绍,本篇文章主要讲List相对于Collection新增的一些重要功能以及其重要子类ArrayList.Li ...

  5. 「Foundation」字符串

    一.Foundation框架中一些常用的类 字符串型: NSString:不可变字符串 NSMutableString:可变字符串 集合型: 1)NSArray:OC不可变数组  NSMutableA ...

  6. 「Foundation」结构体

    一.基本知识 Foundation—基础框架.框架中包含了很多开发中常用的数据类型,如结构体,枚举,类等,是其他ios框架的基础. 如果要想使用foundation框架中的数据类型,那么包含它的主头文 ...

  7. Loj #3096. 「SNOI2019」数论

    Loj #3096. 「SNOI2019」数论 题目描述 给出正整数 \(P, Q, T\),大小为 \(n\) 的整数集 \(A\) 和大小为 \(m\) 的整数集 \(B\),请你求出: \[ \ ...

  8. Loj #2542. 「PKUWC2018」随机游走

    Loj #2542. 「PKUWC2018」随机游走 题目描述 给定一棵 \(n\) 个结点的树,你从点 \(x\) 出发,每次等概率随机选择一条与所在点相邻的边走过去. 有 \(Q\) 次询问,每次 ...

  9. Loj #3055. 「HNOI2019」JOJO

    Loj #3055. 「HNOI2019」JOJO JOJO 的奇幻冒险是一部非常火的漫画.漫画中的男主角经常喜欢连续喊很多的「欧拉」或者「木大」. 为了防止字太多挡住漫画内容,现在打算在新的漫画中用 ...

随机推荐

  1. ONFI闪存数据通道接口标准

    早期的闪存产品每个厂家的设计标准各有不同,会碰到各种各样的问题,特别是到了06年之后,闪存产业市场需求开始发力,造成了迫切需要一个统一的标准来改变这个问题. 2007年1月,以英特尔,镁光,海力士,意 ...

  2. bootstrap 导航栏

    非常好的一篇文章: http://webdesigntutsplus.s3.amazonaws.com/tuts/312_bs/My-Bootstrap-Site-NAVBAR/navbar-exam ...

  3. 解决libc.so.6: version `GLIBC_2.14' not found问题, 升级glibc,glibc-2.15

    0.以下在系统CentOS 6.3 x86_64上操作 1.试图运行程序,提示"libc.so.6: version `GLIBC_2.14' not found",原因是系统的g ...

  4. UVA-514 Rails (栈)

      Rails  There is a famous railway station in PopPush City. Country there is incredibly hilly. The s ...

  5. linux之vim配置

    代码自动补全和代码跳转阅读,应该是作为程序员最常用的功能之一了,具体二者是指什么我就不解释了.微软的Visual Studio就是靠这两样必杀技牢牢占据着广大windows程序员的心(这里面要有强大的 ...

  6. HTML静态网页(图片热点、网页划区、拼接及表单的使用)

    图片热点: 规划出图片上的一个区域,可以做出超链接,直接点击图片区域就可以完成跳转的效果. 示例: 网页划区: 在一个网页里,规划出一个区域用来展示另一个网页的内容. 示例:   网页的拼接: 在一个 ...

  7. sql表连接的几种方式

    这里有两张表TableA和TableB,分别是姓名表和年龄表,用于我们例子的测试数据 TableA id name 1 t1 2 t2 4 t4 TableB id age 1 18 2 20 3 1 ...

  8. SQL Server 判断表中是否存在某字段

    功能:判断表中是否存在某字段,若不存在,则新增该字段 语句: IF NOT EXIST (SELECT 1 FROM [DATABASE].[SCHEMA].SYSCOLUMNS WHERE ID=O ...

  9. SQL Server 动态行转列(轉載)

    一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 实现代码(SQL Codes) 方法一:使用拼接SQL,静态列字段; 方法二:使用拼接SQL, ...

  10. 搜索(BFS)

    Problem B: Fire! Joe works in a maze. Unfortunately, portions of the maze have caught on fire, and t ...