Может ли блокировать OBJ-C выполнить себя?

Это расширение этого задания: Можно ли создать категорию объекта «блок» в объекте-C .

В основном, хотя кажется возможным создать категорию на блоках, либо через NSObject, либо NSBLOCK, у меня проблемы с пониманием того, как блок сможет оценить себя. Пример, приведенный в ответе на последний вопрос:

- (void) doFoo {
  //do something awesome with self, a block
  //however, you can't do "self()".  
  //You'll have to cast it to a block-type variable and use that
}

подразумевает, что можно каким-то образом отбрасывать переменную блока, но как бы один выполнил сам блок? Например, скажем, я сделал категорию на NSBLOCK и в методе сделал:

NSBlock* selfAsBlock = (NSBlock*)self;

Есть ли сообщение, которое я могу отправить на SelfasBlock, чтобы получить блок, оценивающий блок?

7
задан Community 23 May 2017 в 10:26
поделиться