前言
简单的总结一下在学习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~