天天看点

黑马程序员_Foundation框架—集合

foundation框架—集合

一、nsarray和nsmutablearray

(一)nsarray不可变数组

(1)nsarray的基本介绍

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

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

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

(2)nsarray的创建

黑马程序员_Foundation框架—集合

(3)nsarray的访问

黑马程序员_Foundation框架—集合

 (4)nsarray的遍历

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

首先创建一个数组

黑马程序员_Foundation框架—集合

第一种方法:使用for循环遍历

黑马程序员_Foundation框架—集合
黑马程序员_Foundation框架—集合

block遍历的深入研究:

黑马程序员_Foundation框架—集合

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

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

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

(二)nsmutablearray可变数组

(1)nsmutablearray的基本使用

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

黑马程序员_Foundation框架—集合

二、nsset和nsmutableset

(一)nsset不可变集合

基本使用:

黑马程序员_Foundation框架—集合

(二)nsmutableset可变集合

黑马程序员_Foundation框架—集合

(三)nsset和nsarray的对比

(1)共同点:

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

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

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

(2)不同点:

1)nsarray有顺序,nsset没有顺序

三、nsdictionary和nsmutabledictionary

(一)nsdictionary不可变字典

(1)介绍

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

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

(2)nsdictionary的创建

黑马程序员_Foundation框架—集合

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

(3)nsdictionary的访问

黑马程序员_Foundation框架—集合

(4)nsdictionary的遍历

黑马程序员_Foundation框架—集合

(二)nsmutabledictionary可变字典

(1)nsmutabledictionary的基本使用

黑马程序员_Foundation框架—集合

(2)nsmutabledictionary的使用注意

黑马程序员_Foundation框架—集合

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

继续阅读