use*_*227 46 typedef objective-c objective-c-blocks
在C/Obj-C中,我们做了一个类似于此的typedef typedef int MYINT;,这很清楚.
为块执行typedef - typedef void (^MyBlock) (int a);
现在,我们可以使用MyBlock.
它不应该像 - typedef void (^MyBlock) (int a) MyBlock;类似#define吗?
语法如何工作?
Mar*_*n R 66
请参阅"块编程主题"中的声明块引用:
块变量保存对块的引用.您使用类似于用于声明指向函数的指针的语法来声明它们,除了您使用^而不是*.
所以
typedef void (^myBlock) (int a);
Run Code Online (Sandbox Code Playgroud)
使用与语法相同的语法定义块的类型
typedef void (*myFunc) (int a);
Run Code Online (Sandbox Code Playgroud)
声明一个函数指针.
有关函数指针的更多信息,请参阅例如,了解C中函数指针的typedef.
fuj*_*471 23
同样来自"块编程主题",为块创建类型应该是这样的:
typedef returnType (^blockName)(argument1, argument2, ...)
Run Code Online (Sandbox Code Playgroud)
下面是一个非常简单的实际例子:
typedef float (^MyBlockType)(float, float);
MyBlockType AddTwoFloat = ^(float a, float b) {return a + b;};
MyBlockType MultiplyTwoFloat = ^(float a, float b) {return a * b;};
float c = AddTwoFloat(1, 2); //c = 3
float d = MultiplyTwoFloat(1, 2); //d = 2
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
28551 次 |
| 最近记录: |