一、數(shù)組
* OC數(shù)組中的成員是有序的,索引從0開始
* 數(shù)組中存儲的都是對象,對象不分類型(基本數(shù)據(jù)類型不能存放)
* 數(shù)組分為可變數(shù)組和不可變數(shù)組
二、不可變數(shù)組(NSArray)
// 創(chuàng)建不可變數(shù)組
NSArray *array1 = [NSArray arrayWithObject:@"hello"];
NSLog(@"%@", array1);
// 在創(chuàng)建有多個(gè)元素的數(shù)組,需要在元素的結(jié)尾處,且只能在結(jié)尾處添加一個(gè)nil對象,表示數(shù)組元素到此結(jié)束
NSArray *array2 = [NSArray arrayWithObjects:@"hello", @"world", @"中文", nil];
NSLog(@"%@", array2);
// 如果數(shù)組中某個(gè)元素在創(chuàng)建時(shí)不能確定,我們可以使用NSNull對象來占位。
NSArray *array3 = [NSArray arrayWithObjects:@"hello",[NSNull null] ,@"world", nil];
NSLog(@"%@", array3);
三、不可變數(shù)組的操作
// 獲取數(shù)組元素的個(gè)數(shù)
int a = (int)[array3 count];
NSLog(@"%d", a);
// 獲取某個(gè)索引值位置的元素
// 因?yàn)椴荒艽_定獲取到的元素是屬于哪個(gè)類,所以在定義對象時(shí)必須是泛型。instancetype只能用在方法的返回值部分,來確保返回值的類型安全,不能夠用在這里聲明一個(gè)對象,在這里需要用id
id temp = [array3 objectAtIndex:2];
NSLog(@"%@", temp);
// 獲取某個(gè)對象在元素中的索引,如果這個(gè)對象不在數(shù)組中,則返回一個(gè)負(fù)數(shù)
int index = (int)[array3 indexOfObject:@"m"];
NSLog(@"%d", index);
// 遍歷數(shù)組
for (int i = 0; i < [array3 count]; i++) {
id obiect = [array3 objectAtIndex:i];
NSLog(@"%@", obiect);
}
四、可變數(shù)組(NSMutableArray)的操作
// 創(chuàng)建一個(gè)數(shù)組
NSMutableArray *mArray = [NSMutableArray arrayWithObjects:@"1",@"2",@"3",@"4", nil];
// 添加一個(gè)新元素(按順序添加)
[mArray addObject:@"5"];
NSLog(@"%@", mArray);
// 插入一個(gè)新元素,到指定位置
[mArray insertObject:@"12" atIndex:2];
NSLog(@"%@", mArray);
// 交換兩個(gè)元素的位置
[mArray exchangeObjectAtIndex:3 withObjectAtIndex:4];
NSLog(@"%@", mArray);
// 替換某個(gè)元素
[mArray replaceObjectAtIndex:3 withObject:@"您好"];
NSLog(@"%@", mArray);
// 刪除元素
// 根據(jù)下標(biāo)刪除元素
[mArray removeObjectAtIndex:1];
NSLog(@"%@", mArray);
// 直接刪除指定對象
[mArray removeObject:@"您好"];
NSLog(@"%@", mArray);
// 刪除最后一個(gè)元素
[mArray removeLastObject];
NSLog(@"%@", mArray);
// 刪除全部元素
[mArray removeAllObjects];
NSLog(@"%@", mArray);
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。