Почему блокировка должна быть скопирована и не сохранена? Когда вам не нужно копировать блок?

Почему блокировка должна быть скопирована и не сохранена? В чем разница между двумя под капотом? При каких условиях вам не нужно копировать блок, если он есть?

Обычно, когда вы назначаете экземпляр класса, он переходит в кучу и держится до тех пор, пока не будет освобожден. Но если вы объявите блок с текстом, он пойдет в стек. Когда кадр стека уходит, так же как и экземпляр блока – если вы его не скопируете, что создает экземпляр-резидентный кусок. В принципе, если вы хотите продолжить использование блока после того, как будет вставлен фрейм стека, вам нужно сделать копию где-нибудь.

Блоки создаются в стеке и уничтожаются, когда выполнение достигает конца текущей области. Чтобы этого не произошло, вы должны скопировать их, что приведет к их копированию в кучу. Обычно вы копируете блок, который хотите называть его в какой-то более поздний момент, за пределами области, в которой он был создан.

  • Разница между NSArray.array / .new / @ / alloc-init
  • Архитектура Arm64 в xcode 5.1
  • Parse PFUser QueryWithPredicate Не работает
  • как скрыть кнопку в другом контроллере представления в объективе c
  • Обнаружение, если UIColor был создан с помощью colorWithPatternImage
  • dyld: библиотека не загружена для Framework в рамках Framework
  • Найти html-файл в UIWebView
  • UITableView отставание при установке AVPlayerItem
  • CKModifyRecordsOperation modifyRecordsCompletionBlock не вызывается
  • Как создать центр выравнивания текста UIButton? Использование IB
  • Пользовательская аннотация iOS: вид под значком аннотации
  • Давайте будем гением компьютера.