Это расширение этого задания: Можно ли создать категорию объекта «блок» в объекте-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, чтобы получить блок, оценивающий блок?