陣列可以通過下標索引到相應的物件。
nsarray和nsmultiarray裡面儲存的內容只能是——物件(類的例項) 。所以基本資料型別不能直接儲存進去,可以使用nsvalue或者nsnumber封裝儲存進去
oc裡面的陣列是一種線性的資料結構,它的資料原型是線性表.下圖展示了線性表的抽象資料型別(定義+操作)
操作有8種:大約是:增刪查改 始數找空
ios中的陣列,是線性表這個抽象資料結構的一種具象的實現,下面就展示一下蘋果公司的程式設計師們如何實現這個線性結構的。1 類方法初始化:(這裡注意一下蘋果的命名規範,類方法一般是 classwith ,命名規範其實很重要),這裡有四種情況:分別是乙個物件,多個物件,使用陣列,從檔案 初始化
// 類方法命名規範
// 初始化乙個 因為是不可變的 所以實用性不強
nsarray *arr1=[nsarray arraywithobject:@"hello"];
//多個以nil作為陣列的結束
nsarray *arr2=[nsarray arraywithobjects:@"1",@"2", nil];
// 元素指向了同乙個位置
nsarray *arr3=[nsarray arraywitharray:arr2];
// 從檔案初始化陣列
// nsarray *arr3=[nsarray arraywithcontentsofurl:];
2 例項方法初始化:
nsarray *arr4=[[nsarray alloc] initwitharray:arr1];
3 可變陣列的初始化// 新增了乙個空的陣列
nsmutablearray *mularray1=[nsmutablearray array];
// 初始化,加上容量
nsmutablearray *mularray=[nsmutablearray arraywithcapacity:1];
// 元素個數
int count=[arr2 count];
// 訪問哪個元素
nsstring *string1=[arr1 objectatindex:0];
遍歷// 查詢最後乙個物件
nslog(@"%@",[arr2 lastobject]);
// 快速遍歷
for(/*或者id*/nsstring *string in mularray)
// 查詢物件位置
int objindex=[arr2 indexofobject:@"2"];
// 判斷是否有這個元素 這個是判斷有沒有
if(![arr2 containsobject:@"a"])
// 追加物件,返回新的陣列
nsarray *arr11=[arr1 arraybyaddingobject:@"haha"];
不可變陣列無法對陣列進行修改,這裡的操作都是可變陣列的,// 新增物件
for(int i=0;i<20;i++)
// 根據索引位置新增乙個元素
[mularray insertobject:@"bbb" atindex:1];
// 刪除
// 刪除最後乙個
[mularray removelastobject];
// 刪除相應元素
[mularray removeobject:@"aaa"];
// 指定座標刪除
[mularray removeobjectatindex:3];
// 根據陣列來刪除
[mularray removeobjectsinarray:arr1];
// 替換
[mularray replaceobjectatindex:0 withobject:@"1"];
ios中沒有陣列判空操作,你可以用count==0來判斷
本系列博文目錄:
objective-c 學習系列目錄 不定時更新
Objective C學習 陣列排序問題
學到陣列的時候,經常為了資料排序因為排序問題煩惱,樓主也是如此,其實objc為我們提供了很好的排序機制,如下 加文本來解釋一下 main.m nsarraysort 陣列排序 部落格 created by yuewen on 15 9 13.首先定義乙個陣列 nsarray array boy ar...
Objective C陣列小結
objective c陣列相關操作。insert code here.nslog 陣列 指定多個字串建立陣列 nsarray array array nsarray arraywithobjects 0 asd 1 fds 2 哈咯 3 個人 nil 陣列的長度 nslog 陣列長度 d array...
Objective C陣列詳解
1 建立陣列並輸出。直接使用nsarray建立陣列,arr count 呼叫的是方法,來計算陣列的長度。arr objectatindex i 是呼叫方法獲取某個index位置的物件。int main int argc,char ar 2 此時呼叫計算長度使用的是陣列的屬性值count,所以直接使用...