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

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

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

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

  • что является следствием регистрации одного и того же NSURLProtocol более одного раза?
  • Xcode 6 beta и изменяемый размер Iphone: как получить текущие размеры экрана
  • Автоматический ввод учетных данных в UIWebview - iOS
  • Использовать рамки selenium-objective-c
  • Как отключить авторотацию в iOS 8 для конкретного контроллера?
  • EXC_BAD_ACCESS на пользовательском UIView с пользовательским XIB
  • Получите обложку альбома из песни, играющей через Apple Music
  • Лучший способ удалить повторяющиеся значения из NSMutableArray в Objective-C?
  • Ошибка UIRefreshControl при входе на передний план
  • Получить путь к файлу по имени файла из каталога документов ios
  • Простой UIPickerView в MonoTouch (Xamarin)?
  • Давайте будем гением компьютера.