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