по расположению в памяти определяется в следующем фрагменте кода:
                  
                  
                  int main(int argc, char * argv[]) { 
                  
                  
                      @autoreleasepool { 
                  
                  
                          NSString *(^someAction)(void) = ^{
                  
                  
                              return @"someAction";
                  
                  
                          };
                  
                  
                          NSLog(@"%@ ", someAction());
                  
                  
                      } 
                  
                  
                      return 0; 
                  
                  
                  }
                  
                  
                  1. Temporary block
                  
                  
                  2. Heap block
                  
                  
                  3. Permanent block
                  
                  
                  4. Global block
                  
                  
                
это глобал блок. Есть три типа – стэк, хип и глобал. если блок не захватывает какие либо переменные – это глобал блок. Если захватывает, то на момент создания это будет стэк блок, при присваивании блока к переменной в arc он сразу перемещается на хип.
Обсуждают сегодня