foundation框架—集合
一、nsarray和nsmutablearray
(一)nsarray不可变数组
(1)nsarray的基本介绍
nsarray是oc中使用的数组,是面向对象的,以面向对象的形式操纵对象,是不可变数组。
c语言数组有一个缺点即数组中只能存放同种数据类型的元素。
oc数组只能存放oc对象,不能存放非oc对象,如int,结构体和枚举等。
(2)nsarray的创建

(3)nsarray的访问
(4)nsarray的遍历
数组的遍历有以下几种方式:
首先创建一个数组
第一种方法:使用for循环遍历
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的使用注意
注意:这种快速创建的方式只适用于不可变字典。