springlo 发表于 2012-12-19 22:17:34

IOS中block 的使用(二)

<div id="cnblogs_post_body">在第一篇文章中,我介绍了创建block变量的基本知识,__block修改和使用,typedef定义block。在这篇文章中,我将告诉你怎么可以把block作为参数,使用枚举block,以及快速浏览一下block和递归。
作为参数传block

iOS框架内的数量,方法中所提供接受一个block作为参数。因为它涉及到block,这是一个事情开始变得有趣了,你会得到一个角度上提供了一些独特的功能。
例如,下面的代码中,我创建了一个String对象的数组,没有什么新东西。然而,在iOS 4 + NSArray中现在包括一个方法来创建一个集合(NSSet)对象的数组,通过一个indexesOfObjectsPassingTest方法。我写检查的block长度的数组中的每个对象(每个对象是在这个例子中的字符串),并返回YES,只对那些对象的字符串长度大于5。
<div class="wp_syntax"><div class="code"><div class="cnblogs_code">// Create an arrayNSArray *array = @"12345", @"12345678", @"abcd", @"123abc", nil]; // Create a set (an unordered collection of objects) with the indexes of the objects// in the array where the length of the object in the array is > 5.// Notice the parameter is a block.NSIndexSet *set = id obj, NSUInteger idx, BOOL *stop){                     if ( > 5)    return YES;else    return NO;}];
页: [1]
查看完整版本: IOS中block 的使用(二)