Это расширение этого вопроса: Можно ли создать категорию объекта Block в Objective-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 для оценки блока?