六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 97|回复: 0

IOS中block 的使用(二)

[复制链接]

升级  36%

32

主题

32

主题

32

主题

秀才

Rank: 2

积分
104
 楼主| 发表于 2013-1-4 01:33:36 | 显示全部楼层 |阅读模式
<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 = [NSArray arrayWithObjects: @"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 = [array indexesOfObjectsPassingTest: ^(id obj, NSUInteger idx, BOOL *stop)  {                     if ([obj length] > 5)    return YES;  else    return NO;}];
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表