Objective-C中的静态块变量

时间:2013-11-22 00:22:20

标签: objective-c objective-c-blocks static-variables

是否可以使用“块类型”的静态变量?

我有一个只在静态方法中执行操作的类。执行这些方法后,我正在调用statusChangedBlock。为此,我创建了一个类的共享实例,并使用其单个块属性。我想知道是否有可能有一个静态块变量;所以我不必创建一个具有单个属性的实例,只是为了通知我的状态发生了变化。

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

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

2 个答案:

答案 0 :(得分:11)

声明块类型的静态变量

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

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

答案 1 :(得分:0)

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