NSArray不可變數(shù)組
- NSArray特點(diǎn)
- NSArray的創(chuàng)建
- NSArray常用方法
- NSArray簡(jiǎn)化形式
- NSArray的遍歷
- NSArray讀寫文件
- NSArray與字符串
1、NSArray特點(diǎn)
1舍肠、一旦創(chuàng)建成功,內(nèi)容不可改變(NSArray是不可變數(shù)組咐吼,NSMutableArray是可變數(shù)組)
2胁附、只能存放OC對(duì)象
2沾乘、NSArray的創(chuàng)建
創(chuàng)建一個(gè)空數(shù)組:
NSArray*arr1 =[NSArray array];
創(chuàng)建多元素?cái)?shù)組:
NSArray *arr2 = [NSArray arrayWithObject:@”one”,@”two”,@”three”,nil];
用一個(gè)數(shù)組創(chuàng)建另一個(gè)數(shù)組:
NSArray *arr3 = [NSArray arrayWithArray: arr2];
初始化方法:
init返回一個(gè)空數(shù)組
initWithArray從已有數(shù)組初始化
initWithContentsOfFile//從plist文件加載
initWithContentsOfUrl//從網(wǎng)絡(luò)地址上獲取
initWithObject用一個(gè)對(duì)象初始化
initWithObjects從多對(duì)象初始化
3俐末、NSArray常用方法
NSArray *arr = [NSArray arrayWithObject:@”one”,@”two”,@”three”,@”four”,nil];
或者arr =@[@”one”,@”two”,@”three”,@”four”];
獲取數(shù)組的長(zhǎng)度恬砂,count獲取數(shù)組元素的個(gè)數(shù)
int arrLength = arr.count;
arrLength = [arr count];
根據(jù)下標(biāo)蛤铜,獲取下標(biāo)對(duì)應(yīng)的對(duì)象
NSString *str = [arr objectAtIndex:2];//打印出來(lái)的是three嘹叫,因?yàn)閿?shù)組元素是從0開(kāi)始的(0婆殿,1,2 . . .)
返回元素的下標(biāo):
int intnum = [arr indexOfObject:”four”];//返回的下標(biāo)是3
數(shù)組中是否包含了某個(gè)元素:
if ([arrcontainsObject:@”four”] == YES){
NSLog(@”包含此元素”);
}else{
NSLog(@”不包含此元素”);
}
4待笑、NSArray簡(jiǎn)化形式
用簡(jiǎn)化的方法定義數(shù)組:
NSArray*arr = @[@”one”,@”two”,@”three”];
訪問(wèn)數(shù)組元素:
NSString *str = [arr objectAtIndex:1];//返回two
用簡(jiǎn)化的方法訪問(wèn)數(shù)組元素:
NSString *str =arr[1];//返回two
5鸣皂、NSArray的遍歷
定義一個(gè)數(shù)組:
NSArray*arr = @[@”one”,@”two”,@”three”,@”four”];
對(duì)數(shù)組進(jìn)行遍歷(兩種方法):
for (int i = 0;i < arr.count;i++){
NSLog(@”%@”,arr[i]);
}
或者
for (NSString *str in arr){
NSLog(@”%@”,str);
}
6、NSArray讀寫文件
寫入
NSArray *arr = @[@”one”,@”two”,@”three”];
把a(bǔ)rr中的內(nèi)容寫入到文件中,.plist是一種特殊的文件格式:
BOOL isWrite = [arr writeToFile:@”/Users/xingming/Desktop/arr.xml” atomically: YES];
if (isWrite){
//判斷是否寫入成功寞缝,如果isWrite是真癌压,則執(zhí)行此方法
NSLog(@”success!”);
}
讀取
NSArray *readArr = [NSArray arrayWithContentsOfFile:@”/Users/xingming/Desktop/arr.xml”];
NSLog(@”%@”,readArr);//打印
7、NSArray與字符串
①把數(shù)組拼接成字符串
②把字符串拆分成數(shù)組
把數(shù)組拼接成字符串
定義一個(gè)數(shù)組:
NSArray*arr =@[@”1”,@”2”,@”3”,@”4”];
把數(shù)組arr中的元素用“-”連接起來(lái)荆陆,變成1-2-3-4
NSString*str = [arr componentsJoinedByString: @”-”];
NSLog(@”str = %@”,str);//打印結(jié)果:str = 1-2-3-4
把字符串拆分成數(shù)組
NSArray *aArray = [str componentsSeparatedByString:@"-"];;
NSLog(@”aArray= %@”,aArray);//打印
NSMutableArray可變數(shù)組
- 為數(shù)組分配內(nèi)存空間
- 添加對(duì)象
- 向尾部添加數(shù)組對(duì)象
- 刪除數(shù)組元素
- 替換某所引值對(duì)應(yīng)的對(duì)象
- 數(shù)組迭代遍歷
1滩届、為數(shù)組分配內(nèi)存空間
為數(shù)組分配內(nèi)存空間
NSMutableArray *array = [NSMutabeArray arrayWithCapacity:10];
//初始化可變數(shù)組對(duì)象的長(zhǎng)度,如果后面代碼繼續(xù)添加數(shù)組超過(guò)長(zhǎng)度10以后NSMutableArray的長(zhǎng)度會(huì)自動(dòng)擴(kuò)充被啼,10是自己可以設(shè)置的顆粒度帜消。
2、添加對(duì)象
添加對(duì)象
方法:- (void)addObject: (id)anObject;
例子:
NSMutableArray*array = [NSMutableArray arrayWithCapacity:10];
[array addObject:@“One”];
[array addObject:@“Two”];
NSLog(@“array:%@”,array);
打优ㄌ濉:
array:(
One,
Two
)
3泡挺、向尾部添加數(shù)組對(duì)象
方法:addObjectsFromArray:
NSArray *array = @[@"One",@"Two",@"Three"];
NSMutableArray*mutArr = [NSMutableArray arrayWithArray:array];
NSLog(@“mutArr=%@”,mutArr);
打印:
mutArr= (
One,
Two,
Three
)
4命浴、刪除數(shù)組元素
[array removeObject:(id)] :刪除數(shù)組中指定元素娄猫,根據(jù)對(duì)象isEqual消息判斷。
[array removeObjectIdenticalTo:(id)] :刪除數(shù)組中指定元素,根據(jù)對(duì)象的地址判斷
[array removeObjectIdenticalTo:(id) inRange:(NSRange)] :在指定范圍內(nèi)刪除指定的元素生闲。
[array removeObjectAtIndex:(NSUInteger)]:刪除數(shù)組中指定腳標(biāo)索引的數(shù)據(jù)媳溺。
[array removeObjectsInArray:(NSArray *)] :刪除一個(gè)數(shù)組的元素。
[array removeAllObjects]:刪除數(shù)組中所有的元素(清空數(shù)組)
說(shuō)明:array是可變數(shù)組
5碍讯、替換某所引值對(duì)應(yīng)的對(duì)象
方法:replaceObjectAtIndex:withObject:
NSMutableArray *mutArr = [NSMutableArray arrayWithObjects:@"One",@"Two",@"Three", nil];
[mutArr replaceObjectAtIndex:2 withObject:@"Four"];
NSLog(@"mutArr= %@",mutArr);
打有巍:
mutArr= (
One,
Two,
Four
)
6、數(shù)組迭代遍歷
NSObject *obj = [[NSObject alloc] init];
NSMutableArray*muArray = [NSMutableArray arrayWithCapacity:6];
[muArray addObject:@"對(duì)象1"];
[muArray addObject:@"對(duì)象2"];
[muArray addObject:obj];
NSEnumerator*enmuerator = [muArray objectEnumerator];
id object;
while(object = [enmueratornext Object]) {
NSLog(@"數(shù)組中的對(duì)象:%@",object);
}
打幼叫恕: 數(shù)組中的對(duì)象:對(duì)象1
數(shù)組中的對(duì)象:對(duì)象2
數(shù)組中的對(duì)象:<NSObject: 0x7a15d2d0>