- Objective-C简介
- Objective-C开发环境设置
- Objective-C程序结构
- Objective-C基本语法
- Objective-C数据类型
- Objective-C变量
- Objective-C常量
- Objective-C运算符
- Objective-C循环
- Objective-C决策
- Objective-C函数
- Objective-C块
- Objective-C数字
- Objective-C数组
- Objective-C指针
- Objective-C字符串
- Objective-C结构体
- Objective-C预处理器
- Objective-C类型定义(typedef)
- Objective-C类型转换
- Objective-C日志处理
- Objective-C错误处理
- Objective-C命令行参数
- 高级部分
Objective-C快速枚举
快速枚举是Objective-C的功能,用于枚举集合。 因此,要了解快速枚举,首先需要了解集合,这将在下一节中进行说明。
1. Objective-C集合
集合是基本结构。它用于保存和管理其他对象。 集合的主要目的是提供一种有效存储和检索对象的通用方法。
有几种不同类型的集合。 虽然它们都能实现能够容纳其他对象的相同目的,但它们的主要区别在于检索对象的方式。 Objective-C中使用的最常见的集合是 -
NSSet
NSArray
NSDictionary
NSMutableSet
NSMutableArray
NSMutableDictionary
如果想了解有关这些结构的更多信息,请参阅Foundation框架中的数据存储。
快速枚举语法
for (classType variable in collectionObject ) { statements }
以下是快速枚举的示例 -
#import <Foundation/Foundation.h> int main() { NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; NSArray *array = [[NSArray alloc] initWithObjects:@"string1", @"string2",@"string3",@"yii",@"bai",nil]; for(NSString *aString in array) { NSLog(@"Value: %@",aString); } [pool drain]; return 0; }
执行上面示例代码,得到以下结果 -
2018-11-16 06:09:09.615 main[180842] Value: string1 2018-11-16 06:09:09.618 main[180842] Value: string2 2018-11-16 06:09:09.618 main[180842] Value: string3 2018-11-16 06:09:09.618 main[180842] Value: yii 2018-11-16 06:09:09.618 main[180842] Value: bai
如在输出中看到的那样,数组中的每个对象都按顺序打印。
快速枚举向后
for (classType variable in [collectionObject reverseObjectEnumerator] ) { statements }
以下是快速枚举中reverseObjectEnumerator
的示例 -
#import <Foundation/Foundation.h> int main() { NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; NSArray *array = [[NSArray alloc] initWithObjects:@"string1", @"string2",@"string3",@"Yii",@"Bai",nil]; for(NSString *aString in [array reverseObjectEnumerator]) { NSLog(@"Value: %@",aString); } [pool drain]; return 0; }
执行上面示例代码,得到以下结果 -
2018-11-16 06:11:46.903 main[43643] Value: Bai 2018-11-16 06:11:46.904 main[43643] Value: Yii 2018-11-16 06:11:46.905 main[43643] Value: string3 2018-11-16 06:11:46.905 main[43643] Value: string2 2018-11-16 06:11:46.905 main[43643] Value: string1
正如您在输出中看到的那样,与正常快速枚举相比,数组中的每个对象都以相反的顺序打印。
上一篇:Objective_C基础框架
下一篇:Objective-C内存管理
扫描二维码
程序员编程王