前言
簡單的總結一下在學習Objective-C過程中對數組的一些理解
正文
NSArray
NSArray有兩種限制
- 它只能存儲Objective-C的對象,而不能存儲原始的C語言數據類型
- 它不能存儲nil
數組創建
數組字面量
NSArray* array = @[@"first",@"second"];
在[]外面的“@”表示這個數組類型是屬於Objective-C類型的。裏面的”@”表示字符串屬於Objective-C類型,因爲NSArray不能存儲原始的C語言數據類型;
類方法創建
NSArray* array = [NSArray arrayWithObjects: @"first",@"second",nil];
上面以逗號隔開的對象列表初始化數組,在列表結尾nil表示的是列表結束的意思(這就是不能再數組中存儲nil的一個原因)
數組查詢
索引查詢
-(void)searchArray:(NSArray*) arry {
//索引遍歷
NSLog(@"下面是索引比那裏");
NSMutableString *content = [NSMutableString stringWithCapacity:10];
for(int index = 0; index < [arry count]; index++) {
[content appendFormat:@"這是第%d元素:%@ ",index,arry[index]];
}
NSLog(@"%@",content);
}
枚舉查詢
-(void)searchArray:(NSArray*) arry {
//枚舉遍歷
NSLog(@"下面是枚舉遍歷");
NSEnumerator *interator = [arry objectEnumerator];
id temp;
while((temp = [interator nextObject])) {
NSLog(@"%@",temp);
}
}
快速枚舉
在Objective-C 2.0 提供了快速枚舉
for(NSString* string in array) {
//array表示數組
//string表示數組裏面的內容
}
代碼塊查詢
apple添加了一個能在NSArray中通過代碼塊枚舉對象的方法
[array enumerateObjectsUsingBlock:(void(^)(id obj,NSUInteger idx,BOOL* stop)
//obj表示的就是array遍歷出來的類型
}]
NSMutableArray
它是可變的,而NSArray創建好以後就不能改變,這個在使用過程中多多體會
結束語
大體功能是瞭解了,文檔裏面提供的api還不是很熟悉,用到時多多看文檔,come on~