ios學習筆記(五)陣列和字典

2021-07-07 06:37:43 字數 2936 閱讀 999

陣列類,可存放oc物件,不可存放int float 的基本資料型別和cgrect這兩種原始資料

陣列中物件的順序是以索引(index)標記的

陣列分為可變陣列和不可變陣列;可變陣列可進行增刪改得操作,不可變陣列不能進行增刪該

不可變陣列:

nsarray *array  = [[nsarray alloc]initwithobjects:@"000",@"111",@"222", nil];//其所因分別為0,1,2

//獲取陣列長度

int arraycount = [array count];

//根據索引取值

nsstring *str = [array objectatindex:2];

//str 的值為 222

//遍歷陣列,取出陣列中的所有元素

for (int a = 0; a//簡單遍歷方式

for (nsstring *string2 in array)

可變陣列:

//初始陣列長度的建立方法,但是新增object時如果超過了這個長度,陣列長度會增加

nsmutablearray *marry1 = [[nsmutablearray alloc]initwithcapacity:10];

//初始化變數的建立方法

nsmutablearray *marry2 = [[nsmutablearray alloc]initwithobjects:@"000",@"111",@"222", nil];

//增加元素單個元素

[marry1 addobject:@"333"];

[marry2 addobject:@"444"];

//刪除陣列內所有物件

[marry1 removeallobjects];

//刪除最後乙個物件

[marry2 removelastobject];

//刪除指定物件

[marry2 removeobject:@"111"];

//根據索引刪除物件

[marry2 removeobjectatindex:0];

//在制定索引處插入物件

[marry2 insertobject:@"555" atindex:1];

//制定索引的物件替換

[marry2 replaceobjectatindex:1 withobject:@"666"];

//根據索引交換兩個物件的位置

[marry2 exchangeobjectatindex:0 withobjectatindex:1];

//使用迴圈新增多個物件

for (int i = 0; i < 10; i ++)

//遍歷操作與不可變陣列相同

字典分為可變字典和不可變字典,區別:是否可以進行增刪改操作

與陣列相比,字典主要的特點是,字典根據自己新增的鍵(key)來查詢值(value),而不是按系統定義的索引(index)

不可變字典

//建立字典

nsdictionary *dic = [[nsdictionary alloc]initwithobjectsandkeys:@"value0",@"key0",@"value1",@"value1",@"value2",@"value2", nil];

//查詢字典中鍵值對的個數

int count = [dic count];

//查詢所有的鍵

nsarray *arrayforallkeys = [dic allkeys];

//查詢所有的值

nsarray *arrayforallvalues = [dic allvalues];

//根據key查詢對應的value

nsstring *string = [dic objectforkey:@"key2"];

//迴圈遍歷

for (int i = 0; i

//陣列中存放int float

int a = 1;

float b = 2.5;

nsnumber *aa = [nsnumber numberwithint:a];

nsnumber *bb = [nsnumber numberwithfloat:b];

nsarray *array = [nsarray arraywithobjects:aa,bb, nil];

//以加號方法的形式建立

nsdictionary *dic1 = [nsdictionary dictionarywithobjectsandkeys:@"value0",@"key0",@"value1",@"value1",@"value2",@"value2", nil];

可變字典

//建立可變字典

nsmutabledictionary *mdic = [nsmutabledictionary dictionary];

//可變字典也可以初始化鍵值對建立

nsmutabledictionary *mdic1 = [[nsmutabledictionary alloc]initwithobjectsandkeys:@"value0",@"key0",@"value1",@"value1",@"value2",@"value2", nil];

//向字典中增加鍵值對時,若字典中該key不存在,則新增;若字典中該key已存在,則修改對應的value

[mdic setvalue:@"value" forkey:@"key0"];//增加

[mdic1 setobject:@"value" forkey:@"key0"];//修改

//刪除指定key對應的鍵值對

[mdic1 removeobjectforkey:@"key2"];

//刪除所有的鍵值對

[mdic1 removeallobjects];

//查詢遍歷操作同不可變字典   

//使用nslog輸出時,字典使用{}包圍內容,陣列使用()包圍內容

IOS學習筆記(五)

command 塊左移 comamnd 塊右移 tab 接受 自動完成提示 esc 顯示 提示 command b 編譯 command r 執行 control f 前移游標 control b 後移游標 control p 游標移到上一行 control n 游標移到下一行 control a ...

iOS學習筆記之字典排序

有時候拼接引數會用到字典傳過來的引數而且是要排序的,下面我們看看應該怎麼去做!nsdictionary params 這個引數字典中一共有4個key name hometown userid phone。我們該怎麼樣把這四個字串按公升序排列呢?首先我們定義乙個陣列,儲存字典中的所有key值 nsar...

(c c 學習筆記五)陣列和指標

一.陣列指標和指向陣列的指標變數 乙個變數有乙個位址,乙個陣列包含若干個元素,每個陣列元素都在記憶體中占用儲存單元,它們都有相應的位址。所謂陣列的指標是指數組的起始位址,陣列元素的指標是指數組元素的位址。乙個陣列是由連續的一塊記憶體單元組成的,陣列名就是這款連續記憶體單元的首位址。例 int a 1...