ios-关于枚举block中的数组

问题描述

关于枚举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?

解决方案

应该改成

void (^block )(void) = obj;

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

void (^blockReturningVoidWithVoidArgument)(void);int (^blockReturningIntWithIntAndCharArguments)(int char);void (^arrayOfTenBlocksReturningVoidWithIntArgument[10])(int);

解决方案二:

[self.myArray enumerateObjectsUsingBlock:^(id obj NSUInteger idx BOOL *stop) {    void (^block)() = obj;      block();}];

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

[self.myArray enumerateObjectsUsingBlock:^(void (^block)() NSUInteger idx BOOL *stop) {    block();}];

解决方案三:

void (^block )(void) = obj;

应该这样设置

时间: 2024-11-03 16:57:55

ios-关于枚举block中的数组的相关文章

iOS 中由数组 NSArray 与 NSMutableArray 的使用理解偏差引发的多宗血案

iOS 中由数组 NSArray 与 NSMutableArray 的使用理解偏差引发的多宗血案 太阳火神的美丽人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转载请保留此句:太阳火神的美丽人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS.Android.Html5.Arduino.pcDuino,否则,出自本博客的文章拒绝转载或再转载,谢谢合作. 这个简单问题,一直以来,五年苹果开发经验告诉我,

iOS中NSArray数组常用处理方式_IOS

1. 数组的常用处理方式 //--------------------不可变数组 //1.数组的创建 NSString *s1 = @"zhangsan"; NSString *s2 = @"lisi"; NSString *s3 = @"wangwu"; //(1) NSArray *array1 = [[NSArray alloc] initWithObjects:s1,s2,s3, nil]; NSLog(@"%@",a

iOS开发之Block

1.定义 (1) Block是OC中的一种数据类型,在iOS开发中被广泛使用 (2) ^是Block的特有标记 (3) Block的实现代码包含在{}之间 (4) 大多情况下,以内联inline函数的方式被定义和使用 (5) Block与C语言的函数指针有些相似,但使用起来更加灵活 例如: void(^demoBlock)() = ^ {     NSLog(@"demo Block"); }; int(^sumBlock)(int, int) = ^(int x, int y) {

vb.net枚举网络中所有的SQL 2000服务器

服务器|网络 对于SQL Server2000来说,打开SQL Server客户端准备连接,当拉开服务器列表的时候,整个局域网所有的SQL Server服务器都被列出来了. vb.net枚举网络中所有的SQL 2000服务器     对于SQL Server2000来说,打开SQL Server客户端准备连接,当拉开服务器列表的时候,整个局域网所有的SQL Server服务器都被列出来了.于是我发现,从我自己的机器(192.168.0.1)上从1434端口广播(192.168.0.255)了这个

把JS、vbs中的数组传递给COM组件Activex

COM组件的方法在IDL中的声明: [id(1), helpstring("方法InputArray")] HRESULT InputArray([in] VARIANT vData); 在脚本中建立数组并调用COM组件的方法: 当数组很大的时候,like 100k ,javascript在给数组赋值的时候效率非常低!完成时间,cpu占用率,占用的内存都大的可怕.反而VBScript却完成的很好. COM组件的代码: 从代码中可以看到vbscript传进来的是个SafeArray.而j

iOS 位枚举

在 iOS 开发中,我们使用系统的枚举定义的时候,经常可以看到位枚举: typedef NS_OPTIONS(NSUInteger, UIControlState) { UIControlStateNormal = 0, UIControlStateHighlighted = 1 << 0, // used when UIControl isHighlighted is set UIControlStateDisabled = 1 << 1, UIControlStateSelec

ios-IOS中如何数组内容比较得到最大值

问题描述 IOS中如何数组内容比较得到最大值 有数组charAry,数组内容为:9, 87bh, j65, 159, 27, 3582, 64957, hg75b, 20140402b,请问怎么比较得到整数最大值64957 解决方案 NSNumber * max = [charAry valueForKeyPath:@"@max.self"];

基于java中byte数组与int类型的转换(两种方法)_java

java中byte数组与int类型的转换,在网络编程中这个算法是最基本的算法,我们都知道,在socket传输中,发送.者接收的数据都是 byte数组,但是int类型是4个byte组成的,如何把一个整形int转换成byte数组,同时如何把一个长度为4的byte数组转换为int类型.下面有两种方式. public static byte[] int2byte(int res) { byte[] targets = new byte[4]; targets[0] = (byte) (res & 0xf

IOS开发之路--C语言数组和字符串_IOS

概览 数组在C语言中有着特殊的地位,它有很多特性,例如它的存储是连续的,数组的名称就是数组的地址等.而在C语言中是没有String类型的,那么如果要表示一个字符串,就必须使用字符串数组.今天主要就介绍如下三个方面: 一维数组 多维数组 字符串 一维数组 一维数组操作比较简单,但是需要注意,数组长度必须是固定的,长度不能使用变量进行初始化:如果声明的同时进行赋值则数组长度可以省略,编译器会自动计算数组长度:同时数组不能先声明再一次性赋值(当然可以对每个元素一一赋值). #include <stdi