OC基础-零基础学习Objective-C:第四部分.NSArray

NSArrayOC中的数组类型,本质是一个Cocoa类,用来存储对象的有序列表。你可以在NSArray中存储任意类型的对象:NSStringNSObject(这里代指所有类)、对象、其他数组、字典等等。

NSArray有一定的限制:只能存储Objective-C的对象,不能存储原始的C语言的基础数据类型,如intfloatenumstructNSArray中的随机指针。也不可以存储nil(对象的零值,NULL更不可能)

创建NSArray:通过arrayWithObjects类方法创建NSArray,创建即赋值,每个元素以逗号隔开,末尾以nil结尾代表没有更多对象(这就是不能存储nil的原因)。

       NSArray*array = [NSArrayarrayWithObjects:@”one”,@”two”,@”three”,nil];

数组字面量格式创建NSArray:这种创建格式不用在结尾加上nil

       NSArray*array = @[@”one”,@”two”,@”three”];

获取数组包含的对象个数:count方法可以获取数组所包含的所有元素的个数

       count方法的声明:

            -(NSUInteger)count;

      count方法的调用:

            inta = [array count];

获取特定索引处的对象:使用objectAtIndex方法可以获取特定索引位置的对象的内容,索引不要大于数组本身的个数。

      objectAtIndex方法的声明:

            -(id)objectAtIndex:(NSUInteger)index;

      objectAtIndex方法的调用:

            NSString*a = [array objectAtIndex:1];

通过字面量访问数组:

      id*myObject = array[1];

检查是否包含指定对象:

      NSLog(@"isContains :%d", [array containsObject:@"obj"]);

查找某个对象所在索引:

      NSLog(@"indexOfObject :%d",[array indexOfObject:@"obj"]);

显示最后一个元素:

      NSLog(@"lastObejct :%@", [array lastObject]);

拆分数组:用componentsSeparatedByString方法以指定的内容拆分一串字符串为数组。

      NSString*string = @”op:ack:bork:greeble:ponies”;

      NSArray*array = [stringcomponentsSeparatedByString:@”:”];

合并数组:用componentsJoinedByString方法以指定内容衔接合并数组为字符串。

      String= [array componentsJoinedByString:@”--”];

可变数组:类似于可变字符串,原始的NSArray是不可以创建之后被更改的,而它的子类NSMutableArray是在创建之后可以被更改的。

创建可变数组:通过arrayWithCapacity来创建可变数组,注意,没有可以用来创建NSMutableArray的字面量语法。

      arrayWithCapacity的声明:

            +(id)arrayWithCapacity:(NSUInteger)numItems;

创建:数组容量值只是一个参考

      NSMutableArray*array = [NSMutableArray arrayWithCapacity:17];

在数组末尾添加变量:addObject方法用来在一个已经声明好的数组末尾添加变量。

      addObject声明:

            -(void)addObject:(id)anObject;

删除特定索引处的对象:可以用removeObjectAtIndex方法删除特定索引处的数组元素。

      removeObjectAtIndex声明:

            -(void)removeObjectAtIndex:(NSUInteger)index;

特定索引处插入对象:insertObject方法可以根据索引在相应位置插入数组元素。

      [array insertObject:@"obj" atIndex:0];  

替换对象:replaceObjectAtIndex方法可以根据给定的索引替换相应的对象。

      [array replaceObjectAtIndex:0 withObject:@"obj"];  

为数组排序:因为数组的排序好复杂,各种形式,单写。

枚举器NSEnumeratorCocoa可以用它来表示集合中迭代的对象。通过调用objectEnumerator方法向数组请求枚举器。

      objectEnumerator的声明:

            -(NSEnumerator *)objectEnumerator;

      请求下一项的声明:

            -(id)nextObject;

循环代码:当nextObject返回nil的时候循环结束。还有就是不要通过枚举器进行数组的添加或删除,这样枚举器会发生混乱出错。

      NSEnumerator*enumerator = [array objectEnumerator];

      While(id thingie = [enumerator nextObject])

      {

            NSLog(@”Ifound %@”,thingie);

      }

快速枚举:这是一个循环体,它将会历遍数组中的每一个元素,并用变量存储每个数组的值。

      for(NSString *string in array)

      {

            NSLog(@”Ifound %@”,string);

      }

通过代码块枚举对象:通过代码块可以让循环操作并发执行,而快速枚举则是一项项的线性完成。

      代码块枚举的声明:

            -(void)enumerateObjectsUsingBlock:(void (^)(id obj,NSUIntegeridx,BOOL *stop))block

重写枚举方式:

      [arrayenumerateObjectUsingBlock:^(NSString *string,NSUInteger index,BOOL*stop){

            NSLog(@”Ifound %@”,string);

      }];

 因为Objective-C的语法比较枯燥,所以我一边学习iOS开发一边学习Objective-C的基础语法,准备把iOS开发也写上来。加油!

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看REAdMe.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看REAdMe.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看READme.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值