Переменная статического блока в Objective-C - программирование
Подтвердить что ты не робот

Переменная статического блока в Objective-C

Возможно ли иметь статическую переменную типа "block type"?

У меня есть класс, который только делает вещи в статических методах. После выполнения этих методов я вызываю statusChangedBlock. Только для этого я создаю общий экземпляр класса и использую его одноблочное свойство. Интересно, возможно ли иметь статическую блочную переменную; поэтому мне не нужно было бы создавать экземпляр с единственным свойством, просто для уведомления о том, что мой статус изменился.

Я знаю, что есть опция NSNotification, но я не люблю ее использовать, за некоторыми редкими исключениями.

... этот вопрос как-то звучит глупо, я не могу понять почему. Я надеюсь, что кто-то это покажет.

4b9b3361

Ответ 1

объявить статическую переменную типа блока

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

или

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

Ответ 2

Переменная типа блока на самом деле является указателем, аналогичным объекту. У вас может быть статическая блок-переменная, но вы должны назначить ее значение во время выполнения, perhapse, используя блок dispatch_once.