2 garaster garaster 于 2013.04.27 10:09 提问

关于枚举block中的数组
self.myArray = @[ [^{ NSLog(@"a"); } copy],
                  [^{ NSLog(@"b"); } copy]];

然后

[self.myArray enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
    // This syntax is wrong, but I hope you get my intention
    void (^) (void) block = obj;  
    block();
}];

假如可以不用typedef,在枚举的时候怎么剔除block?

3个回答

KindAzrael
KindAzrael   2013.04.27 23:48
已采纳

应该改成

void (^block )(void) = obj;

关于block定义可以看这个例子

void (^blockReturningVoidWithVoidArgument)(void);
int (^blockReturningIntWithIntAndCharArguments)(int, char);
void (^arrayOfTenBlocksReturningVoidWithIntArgument[10])(int);
love_loveec
love_loveec   2013.04.27 14:04
[self.myArray enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
    void (^block)() = obj;  
    block();
}];

或者在参数列表直接这样:

[self.myArray enumerateObjectsUsingBlock:^(void (^block)(), NSUInteger idx, BOOL *stop) {
    block();
}];
for_2012
for_2012   2013.04.27 14:05
void (^block )(void) = obj;

应该这样设置

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
iOS 块枚举与for循环
在编程中经常需要列举collection中得元素,在当前的Objective-C语言中又多重办法实现此功能,可以用C语言循环,也可以用Objective-C 1.0中得NSEnumerator以及Objective-C 2.0的快速便利(fast enumeration)。在引入了“block”之后,又多出来了集中的的遍历方式。下面详细说明。 for循环 NSArray *anAr
JSPatch-使用经验记录
工程里接入了JSPatch,这个工具确实好用,然而写js脚本补丁却是一件相当让人痛苦的事情,这……可能是自己不够精通的关系吧。 本文将记录一些本人打补丁过程中遇到的一些大大小小的坑,本人在此承诺,将随着时间的推移不断地更新自己遇到的所有的坑,时间……不定。 闲话少说,开始吧。 1  不要让自己的一个方法处理太多的逻辑,减少某一个方法中代码的行数不止会让自己的代码具有更强的可读性,更会减少你打
数组枚举部分
数组 1.创建数组 声明数组: int  a[]; 创建数组: a = new a[5]; 声明与创建同时: int a[] = new a[5]; length:使用a.length来获得数组长度,对于二维数组,其值为一维数组的值。例:int b[][] = new b[3][7];  b.length = 3; 初始化:int a[] = {1,2,3,4,5};   相当于
C#枚举数组
来源: http://hi.baidu.com/love_hh/blog/item/d680ab19bc330c4542a9adaa.html由于昨天停电,所以没有看书,今天补补昨天的东西吧,写个枚举的语法,然后写一些例子,其实对枚举还是印象比较深,因为以前写C++时写的比较多,那时对它挺感兴趣。可是隔了这么久可能也陌生了许多。定义一个枚举方法:public enum Test{ Mo
java 课件 数组、枚举及注解
java 课件 数组、枚举及注解 java 课件 数组、枚举及注解 java 课件 数组、枚举及注解 java 课件 数组、枚举及注解
C#变量(枚举,结构,数组)
复杂的变量类型 1.枚举类型 枚举类型的取值范围是用户提供的值的有限集合。 如定义一个包含了周一到周日的week类型。 enum week:byte { monday=1, tuesday=2, wednesday=3, thursday=4, friday=5, saturday=
Object-C之块枚举的使用
在编程中经常需要列举collection(包含NSArrray,NSDictionary,NSSet等)中得元素,当前的Object-C语言有很多办法实现此功能,可以用标准的C语言循环,也可以用Object-C 1.0 的NSEnumerator以及Object-C 2.0的快速遍历(fast enumeration)。当语言中引入了“块”这一特性后。又多出几种新的遍历方式,而这几种方式容易被开发者
枚举数组
objectAtIndex: enumeration 使用一个 for 循环,递增循环变量,然后用 [myArray objectAtIndex:index] 来访问元素。这是最基本的枚举形式。 ? 1 2 3 4 NSUInteger count = [myArray count]; for (NSUIn
用枚举定义有意义的数组下标
    在开发中,经常会用到一些数组,它里面存放一定数量(已知,不是太多)的特定元素。在使用数字表示的数组下标访问数组中元素的时候,根本不知道该元素是否是需要的那个元素,而且使代码可读性降低,甚至还会出现下标越界的危险。    比如,现在有如下的继承体系:class CShape;class CSquare : public CShape;class CRectangle : public
数组的枚举
javascript高级程序设计——读书笔记 数组的枚举:数组的slice方法会枚举在定范围的所有项,并以数组的形式返回回来;而slice方法存在于数组对象Array的原型上,所以可以使用这 种方式:var arr = [1,2,45,23,12,34,45,56,234]; Array.prototype.slice.call(a,0);可以用这种方式枚举node树的nodeList;如果是普