OC學習 陣列的使用

2021-07-03 08:30:58 字數 2780 閱讀 6222

【陣列】

oc中使用兩種陣列,使用c的陣列存放基本資料型別的資料或位址;使用oc的陣列存放oc的物件位址。

oc的陣列分為兩種:不可變陣列(nsarray)和可變陣列(nsmutablearray)

一、不可變陣列(nsarray)

1、建立

nsarray *ary1 = [[nsarray

alloc] 

initwithobjects

:@"one",@"two",@"three",

nil];

nsarray*ary2 = [nsarray

arraywithobjects

:@"123",@"456",@"789",

nil];

nsarray *ary3 = [[nsarray

alloc] initwitharray:ary1];

nsarray *ary4 = [nsarray

arraywitharray:ary2];

//結尾不需要nil

nsarray

*ary5 =

@[@"abc",@"def",@"hij"];

2、字串分割

//按照指定的字串進行切割

nsarray

*ary = [str componentsseparatedbystring:

@"an"];

//按照指定的字元集合

nscharacterset*charset = [nscharacterset

charactersetwithcharactersinstring:

@"oa"];

nsarray *ary2 = [str 

componentsseparatedbycharactersinset:charset];

3、字串的拼接

//按照指定的字串進行拼接

nsstring

*str2 = [ary componentsjoinedbystring:

@"*"];

4、獲取元素個數

nsuinteger count = [ary count];

5、獲取單個元素

//返回指定的元素

id obj = [ary objectatindex:1];

nslog(@"%@", ary[0]);

6、陣列的遍歷

//遍歷陣列

for (int i=0; i<[ary count]; i++)

//快速遍歷

for (id obj in ary)

說明:1、在for-in中,break和continue同樣可以使用

2、在遍歷過程中,不能修改陣列

7、獲取指定物件的索引

//檢視物件在陣列中的索引,找不到返回nsnotfound

nsuinteger index = [ary indexofobject:@"too"];

8、判斷是否包含指定物件

bool ret = [ary containsobject:@"too"];

二、可變陣列(nsmutablearray)是整合nsarray的

1、設定(set)

[mary

setarray

:@[@"one",@"two",@"three"]];

2、增加(add)

[mary addobject:@"four"];

[mary addobjectsfromarray:

@[@"250"

,@"3"]];

3、插入(insert)

//在指定位置插入元素

[mary insertobject:

@"2"

atindex:2];

4、刪除(remove)

//刪除最後乙個元素

[mary removelastobject];

//刪除指定元素

[mary removeobject:

@"250"];

//刪除指定位置的元素

[mary removeobjectatindex:2];

//刪除指定範圍內的指定元素

[mary removeobject:

@"250"

inrange:nsmakerange(3,

3)];

//刪除指定範圍內的所有元素

[mary removeobjectsinrange:nsmakerange(2,

3)];

//刪除某個陣列指定的元素

[mary removeobjectsinarray:

@[@"250"

,@"2"]];

//刪除所有元素

[mary removeallobjects];

5、替換(replace)

[mary replaceobjectatindex:

0withobject:

@"one"];

6、交換(exchange)

[mary exchangeobjectatindex:

0withobjectatindex:2];

7、//把不可變轉化為乙個新的可變陣列

nsarray *array = [nsarray

arraywithobjects: @"a",@"b",@"c",@"d",nil]; nsmutablearray * array1 = [nsmutablearray

arraywitharray:array];

OC學習 protocol的使用

protocol 協議 可以用來宣告一堆的方法。protocol 協議名稱 方法的宣告列表 end 例如 protocol mydogprotocol void dogtest end 1 乙個類遵守協議 inte ce 類名 父類名 協議名稱1,協議名稱2,end 例如 inte ce hashi...

OC 學習 陣列,字典,集合

main.m oc 學習 陣列等等 created by binmac on 13 12 6.import int main int argc,const char argv 上面的方法效率很低 for nsstring str3 in marray3 for in實際上是快速列舉,跟for迴圈意義...

OC中的陣列

在oc中,我們用 nsarray 類和 nsmutablearray 類來表示陣列,其中 nsarray 類是 nsmuablearray 類的父類。在oc中,我們的陣列是有序的 物件 即我們的陣列只能儲存 物件 在oc中我們的陣列中元素型別不能是 int float cgpoint 等型別。nsa...