objective-c - 对 block 进行类型定义是如何工作的

在 C/Obj-C 中,我们做一个 typedef 就像这样 typedef int MYINT; 很清楚。

为 block 做 typedef -typedef void (^MyBlock) (int a);

现在,我们可以使用MyBlock了。

不应该是类似于-typedef void (^MyBlock) (int a) MyBlock;类似于#define吗?

语法如何工作?

最佳答案

见 Declaring a Block Reference在“ block 编程主题”中:

Block variables hold references to blocks. You declare them using syntax similar to that you use to declare a pointer to a function, except that you use ^ instead of *.

所以

 typedef void (^myBlock) (int a);

使用与

相同的语法定义 block 的类型
 typedef void (*myFunc) (int a);

声明一个函数指针。

参见例如Understanding typedefs for function pointers in C有关函数指针的更多信息。

https://stackoverflow.com/questions/15310880/

相关文章:

ios - AVPlayer 和 Video 的屏幕截图

iphone - 我的 iPhone Objective-C 代码如何在 UIWebView 中收到

objective-c - 核心数据 "use scalar properties for prim

ios - 了解一对多的核心数据删除规则

objective-c - Xcode:可以为协议(protocol)接口(interface)所需

ios - 使用 Xcode 进行模拟时,PerformFetchWithCompletionHan

ios - 不支持推送导航 Controller

objective-c - iOS 7 过度导航栏按钮填充

ios - 如何在 iPhone 上显示来自 API 的 HTML 文本?

objective-c - 实现 -hash/-isEqual :/-isEqualTo. ..:用