enumerateObjectsUsingBlock、enumerateObjectsWithOptions、enumerateObjectsAtIndexes、makeObjectsPerfor使用

OC至 NSArray它提供了一个方便的遍历block,以下具体说明

第一、enumerateObjectsUsingBlock

NSArray *array=@[@"aa",@"bb",@"cc",@"dd",@"ee",@"ff",@"gg"];

[array
enumerateObjectsUsingBlock:^(id obj,
NSUInteger idx, BOOL *stop) {

NSLog(@"%@",obj);

}];

idx代表索引值,obj代表遍历内容

第二、enumerateObjectsWithOptions

NSEnumerationReverse表示逆序遍历

[array
enumerateObjectsWithOptions:NSEnumerationReverse
usingBlock:^(id obj,
NSUInteger idx, BOOL *stop) {

NSLog(@"%@",obj);

}];

第三、enumerateObjectsAtIndexes

该函数不但能够指定遍历顺序。还能够指定遍历的空间

[array
enumerateObjectsAtIndexes:[NSIndexSet
indexSetWithIndexesInRange:NSMakeRange(2,
3)] options:NSEnumerationConcurrent
usingBlock:^(id obj,
NSUInteger idx, BOOL *stop) {

NSLog(@"%@",obj);

}];

第五、- (void)makeObjectsPerformSelector:(SEL)aSelector;

让数组中的每一个元素 都调用 aMethod

第六、让数组的每一个元素运行aSelector,传入的參数是argument

- (void)makeObjectsPerformSelector:(SEL)aSelector withObject:(id)argument;

版权声明:本文博客原创文章。博客,未经同意,不得转载。

时间: 2024-12-11 21:50:25

enumerateObjectsUsingBlock、enumerateObjectsWithOptions、enumerateObjectsAtIndexes、makeObjectsPerfor使用的相关文章

Ojbect-C2 3、NSArray和NSMutableArray数组的使用

Adopted Protocols NSCoding encodeWithCoder: initWithCoder: NSCopying copyWithZone: NSMutableCopying mutableCopyWithZone: NSFastEnumeration countByEnumeratingWithState:objects:count: Tasks Creating an Array + array + arrayWithArray:   -- + arrayWithCo

iOS 面试题:OC标题的基本概念<延续>

第一,如何确定一个方法方法名称 删除减号,加,删除返回值,删除参数类型,删除参数,剩下的就是的方法名 秒,id,能够用assign,copy,retain,依据须要使用 第三,autorelease 在什么时候释放? 在碰到autoreleasepool的时候释放(能够把好几个同样的变量放几个不同的池里) 第四,协议的方法默认是@required 第五,字典集合的特点? 字典是以键值对形式的保存元素 仅仅能存储对象,不能存储基本数据类型 第六,怎样定义一个类? 类的接口部分包括实例变量,属性,和

iOS 面试题:OC基本概念题<续>

第一,怎么确定一个方法的方法名 去掉减号,加号,去掉返回值,去掉参数类型,去掉参数,剩下的就是方法名了 第二,id指向任何对象类型,可以用assign,copy,retain,根据需要使用 第三,autorelease 在什么时候释放? 在碰到autoreleasepool的时候释放(可以把好几个相同的变量放几个不同的池里) 第四,协议的方法默认是@required 第五,字典集合的特点? 字典是以键值对形式的保存元素 只能存储对象,不能存储基本数据类型 第六,如何定义一个类? 类的接口部分包含

ios中集合遍历方法的比较和技巧

本文原文发表自我的[自建博客],cnblogs同步发表,格式未经调整,内容以原博客为准 我是前言 集合的遍历操作是开发中最常见的操作之一,从C语言经典的for循环到利用多核cpu的优势进行遍历,开发中ios有若干集合遍历方法,本文通过研究和测试比较了各个操作方法的效率和优略势,并总结几个使用集合遍历时的小技巧. ios中常用的遍历运算方法 遍历的目的是获取集合中的某个对象或执行某个操作,所以能满足这个条件的方法都可以作为备选: 经典for循环 for in (NSFastEnumeration)

NSArray其中的方法--遍历,

1. ForLoop, For - in, enumerateObjects这个三个方法的区别: 遍历一个数组用For-in最快. 通过Value查询index的时候, 面对大量的数组推荐使用 enumerateObjectsWithOptions的并行方法. 遍历字典类型的时候, enumerateKeysAndObjectsUsingBlock效率最高 1.1遍历数组 NSMutableArray *test = [NSMutableArray array]; for (int i = 0;

enumerateObjectsUsingBlock VS for(... in ...)

for(... in ...)用起来非常方便.简洁,同时enumerateObjectsUsingBlock: 也有很多新特性: 通常enumerateObjectsUsingBlock: 和 (for(... in ...)在效率上基本一致,有时会快些.主要是因为它们都是基于 NSFastEnumeration 实现的. 快速迭代在处理的过程中需要多一次转换,当然也会消耗掉一些时间. 基于Block的迭代可以达到本机存储一样快的遍历集合. 对于字典同样适用,而数组的迭代却不行. 注意"enum

enumerateObjectsUsingBlock 、for 、for(... in ...) 的区别 & 性能测试

for VS for(... in ...) for 的应用范围广基本可以NSArray.NSArray以及C语言的数组等,而for(... in ...)仅限于NSArray.NSArray等 for(... in ...) 更简洁.效率更高 测试代码: 10^7 的数组,时间单位 秒,精确度 毫秒 NSMutableArray *test = [NSMutableArray array]; for (int i= 0; i < 10000000; i++) { [test addObject

Swift - enumerateObjectsUsingBlock的用法

enumerateobjectsusingblock:不是Array的方法在NSArray使用.如果你想使用它,你需要一个实例NSArray而不是Array. import Foundation var array: NSArray = ["Some", "strings", "in", "an", "array"] array.enumerateObjectsUsingBlock({ object, in

for in、for和EnumerateObjectsUsingBlock遍历的区别

1.对于集合中对象数很多的情况下,for in 的遍历速度非常之快,但小规模的遍历并不明显(还没普通for循环快) 2. 如果在for in 循环里,对这个数组进行了修改的话,无论是增,删,修改数组元素位置,都会扔一个异常出来,枚举的过程中数组发生了突变(<__NSArrayM: 0xa4fc000> was mutated while being enumerated.),但是枚举器可以察觉. 3.Value查询index的时候, 面对大量的数组推荐使用 enumerateObjectsWi