Objective-C中的静态块变量

问题描述 投票:11回答:2

是否可以具有“块类型”的静态变量?

我有一个只在静态方法中起作用的类。在执行这些方法后,我将调用statusChangedBlock。为此,我创建该类的共享实例,并使用其单个块属性。我想知道是否可以有一个静态的块变量。因此,我不必创建具有单个属性的实例,只需通知我状态已更改。

我知道有一个NSNotification选项,但是我不喜欢使用它,除了一些罕见的例外。

...这个问题听起来有点愚蠢,我不知道为什么。我希望有人指出这一点。

objective-c objective-c-blocks static-variables
2个回答
11
投票

声明块类型的静态变量

typedef ReturnType (^MyBlockType)(ArgumentType, ArgumentType2);
static MyBlockType myblock;
static MyBlockType myblock2;

static ReturnType (^myblock)(ArgumentType, ArgumentType2);

0
投票

块类型变量实际上是一个指针,类似于对象。您可以具有静态块变量,但是必须在运行时分配其值,也许使用dispatch_once块。

© www.soinside.com 2019 - 2024. All rights reserved.