Если кто-то определяет блок внутри блока внутри функции,
к какой области имеет доступ внутренний блок.
Кроме того, вы должны будете сделать это, чтобы предотвратить сохранение self
(притворные блоки сформированы правильно):
-(void)function
{
__block id me = self;
^{
__block id me2 = me;
^{
[me2 ...];
^}
^}
}