是否可以具有“块类型”的静态变量?
我有一个只在静态方法中起作用的类。在执行这些方法后,我将调用statusChangedBlock
。为此,我创建该类的共享实例,并使用其单个块属性。我想知道是否可以有一个静态的块变量。因此,我不必创建具有单个属性的实例,只需通知我状态已更改。
我知道有一个NSNotification选项,但是我不喜欢使用它,除了一些罕见的例外。
...这个问题听起来有点愚蠢,我不知道为什么。我希望有人指出这一点。
声明块类型的静态变量
typedef ReturnType (^MyBlockType)(ArgumentType, ArgumentType2);
static MyBlockType myblock;
static MyBlockType myblock2;
或
static ReturnType (^myblock)(ArgumentType, ArgumentType2);
块类型变量实际上是一个指针,类似于对象。您可以具有静态块变量,但是必须在运行时分配其值,也许使用dispatch_once
块。