天天看點

OC之Foundation數組

一、簡介

OC數組隻能存放OC對象,不能存放非OC對象類型(例如基本資料類型、結構體、枚舉等)。

C語言數組有一個缺點即數組中隻能存放同種資料類型的元素。

NSArray:不可變數組

NSMutableArray:可變數組

二、NSArray

            NSArray:不可變數組

    1.建立方式

OC之Foundation數組

    2. NSArray的通路

OC之Foundation數組

    3. ★★★NSArray的周遊★★★

首先,我們快速建立一個OC數組

NSArray *array = @[@"first", @"second", @"third", @"forth"];

       1>正常方法周遊

先列出我們最容易想到的(對比C語言數組周遊的方法)

優化前

OC之Foundation數組

①第16行快速建立OC數組:NSArray *array = @[@"first", @"second", @"third", @forth];

② 第18行 array.count 是調用了get方法;

③ 優點:數組下标和數組元素都是可見的;

④ 缺點:每周遊一個元素,都會調用一次 array.count,重複調用,影響性能。

優化後

OC之Foundation數組
通過使用  objectAtIndex: 方法擷取對應下标的數組元素
OC之Foundation數組

       2>快速周遊  for(id obj in array)

OC之Foundation數組
為了可以看到數組下标,做出以下優化
OC之Foundation數組
OC之Foundation數組

       3>調用block進行周遊

OC之Foundation數組

接下來介紹 BOOL *stop

stop是一個BOOL類型的指針變量:

當它的值為YES(或者任何其他非零值)時,表示周遊停止。

當它的值為NO(或者零值)時,表示周遊不會停止。

      4>通過疊代器周遊數組

OC之Foundation數組

            反序疊代器

OC之Foundation數組

三、NSMutableArray

    1.簡介

作用:可以往數組内部添加或删除内容。

注意:NSMutableArray繼承自NSArray,幾乎擁有NSArray的一切方法。

    2.基本用法

OC之Foundation數組