iOS 开发--NSMutableArray使用枚举方法

可变数组也可以使用枚举方法, 我们在这里提供了两种枚举方法, 一个是正序枚举, 一个是倒序枚举, 在正序枚举中, 元素的个数和顺序都是不可以修改的, 但是在倒序枚举中却可以修改, 这有些耐人寻味.

涉及的方法:

objectEnumerator: 正序枚举方法.

reverseObjectEnumerator: 倒序枚举方法.

下面我们来看看例子:

//使用了枚举法的可变数组
#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
  @autoreleasepool {
    NSMutableArray *array = [[NSMutableArray alloc]initWithObjects:@"One", @"Tow", @"Three", nil];
    //objectEnumetator是一个正序枚举法.
    //在使用正序枚举法的时候, 元素个数和元素顺序不允许修改.
//		NSEnumerator *enumerator = [array objectEnumerator];
//		NSString *str;
//		int i = 0;
//		while (str = [enumerator nextObject]){
//			[array removeLastObject];
//			NSLog(@"%d", i);
//		}
//
    //reverseObjectEnumerator是一个逆序的枚举法.
    //在逆序枚举法, 元素的个数和元素的顺序允许修改.
    //PS:在逆序枚举法使用任何犯法去改变元素的个数或元素顺序都是可行的.
    NSEnumerator *enumerator = [array reverseObjectEnumerator];
    NSString *str;
    while (str = [enumerator nextObject]) {
      [array removeLastObject];
      NSLog(@"%@", str);
    }
    //因为这里循环了3次, 每一次都会删除一个元素, 这样子就会导致输出来的结果是空的.
    //2014-10-12 12:24:20.242 EnumNSMutableArray[881:303] ()

    NSLog(@"%@", array);
    [array release];
  }
  return 0;
}
2014-10-13 20:17:48.793 EnumNSMutableArray[6403:303] Three
2014-10-13 20:17:48.794 EnumNSMutableArray[6403:303] Tow
2014-10-13 20:17:48.794 EnumNSMutableArray[6403:303] One
2014-10-13 20:17:48.795 EnumNSMutableArray[6403:303] (
)
Program ended with exit code: 0
时间: 2024-08-01 22:46:28

iOS 开发--NSMutableArray使用枚举方法的相关文章

IOS开发之——四种方法解析Jason数据(转)

本文将介绍TouchJson. SBJson .JSONKit 和 iOS5所支持的原生的json方法,解析国家气象局API,TouchJson和SBJson需要下载他们的库 TouchJson包下载: http://download.csdn.net/detail/enuola/4523169 SBJson 包下载: http://download.csdn.net/detail/enuola/4523177 JSONKit包下载:http://download.csdn.net/detail

IOS开发中重写init方法使用需谨慎

IOS开发中重写init方法使用需谨慎 今天在写一个小软件的时候出现一点问题,这个软件的功能是搜索全国学校,首页就是搜索输入框,在框中输入完要查询的学校所在省份,点击buttom后就会跳转到对应的视图控制器中,然后把搜索结果呈现在一个TableView上,但是我在调试时,每次输入完然后点击搜索按钮时,弹出结果列表总是空的,我需要返回到首页再点击一次搜索才会出现结果,而且我在首页更改搜索关键字之后,点击搜索,结果还是上次的搜索结果,必须返回点击一次才会出现这次的搜索结果. 经过大神指点,原来这个问

NSMutableArray使用枚举方法

可变数组也可以使用枚举方法, 我们在这里提供了两种枚举方法, 一个是正序枚举, 一个是倒序枚举, 在正序枚举中, 元素的个数和顺序都是不可以修改的, 但是在倒序枚举中却可以修改, 这有些耐人寻味. 涉及的方法: objectEnumerator: 正序枚举方法. reverseObjectEnumerator:倒序枚举方法. 下面我们来看看例子: //使用了枚举法的可变数组 #import <Foundation/Foundation.h> int main(int argc, const c

iOS开发使用半透明模糊效果方法整理

虽然iOS很早就支持使用模糊效果对图片等进行处理,但尤其在iOS7以后,半透明模糊效果得到大范围广泛使用.包括今年最新发布的iOS8也沿袭了这一设计,甚至在OS X 10.10版Yosemite中也开始大量使用半透明模糊. 在iOS开发当中,我们有很多选择可以做半透明模糊效果,下面就是一些常见的方式或者说工具. 0. Core Image 作为设计和体验方面的领导者,苹果自己对图片效果和图片处理的支持一定是非常好的,在iOS平台上,5.0之后就出现了Core Image的API.Core Ima

【转载】iOS开发使用半透明模糊效果方法整理

[转载自 http://www.cocoachina.com/ios/20141223/10731.html] 虽然iOS很早就支持使用模糊效果对图片等进行处理,但尤其在iOS7以后,半透明模糊效果得到大范围广泛使用.包括今年最新发布的iOS8也沿袭了这一设计,甚至在OS X 10.10版Yosemite中也开始大量使用半透明模糊. 在iOS开发当中,我们有很多选择可以做半透明模糊效果,下面就是一些常见的方式或者说工具. 0. Core Image 作为设计和体验方面的领导者,苹果自己对图片效果

iOS开发UITableView基本使用方法总结

本文为大家呈现了iOS开发中UITableView基本使用方法总结.首先,Controller需要实现两个delegate ,分别是UITableViewDelegate 和UITableViewDataSource:然后 UITableView对象的 delegate要设置为 self:然后就可以实现这些delegate的一些方法拉. UITableView基本使用方法 1.首先,Controller需要实现两个delegate ,分别是UITableViewDelegate 和UITable

IOS开发 清空数组正确方法

NSArray以及NSMutableArray 在Objc中的两种数组(不可变数组和可变数组), 在日常开发中,经常会遇到需要清空数组的情况,很多人下意识的会想到nil这个方法,这里是不提倡的.因为如果使用 Array == nil:这样不仅清空了数组,同时也把memory释放了,这个object就不存在了.在清空数组时,千万不要这样做. 正确的做法是 利用removeAllObjects; 这样就可以得到想要的效果了 使用nil将会删除整个数组,而使用removeAllObjects仅仅是删除

【iOS开发系列】NSObject方法介绍

NSObject是OC中的基类,全部类都继承于此,这里面也给我们提供了非常多与"类"和"方法"相关的方法,本文将解说几个非常有用的方法. 正文: Person.h #import <Foundation/Foundation.h> @interface Person : NSObject @end</span> Student.h #import "Person.h" // 继承Person类 @interface Stu

iOS开发-OC篇 load方法 和 initialize方法比较

Load方法 和 initialize方法的比较    在OC语言中,我们相比之下对于load和initialize方法的使用比较少,所以会不是很清楚的了解二者的用途和区别,所以整理了一下,和大家进行分享,有所得不对的地方,希望能够指出来,多谢! 1.load方法特点: 1> 当类被引用进程序的时候会执行这个函数 2> 一个类的load方法不用写明[super load],父类就会收到调用,并且在子类之前. 3> Category的load也会收到调用,但顺序上在主类的load调用之后.