Введение
Блочными объектами является C-уровень синтаксическая и функция во время выполнения. Они подобны стандарту C функции, но в дополнение к исполняемому коду они могут также содержать привязки переменных к автоматическому (штабель) или управляемый («куча») память. Блок может поэтому поддержать ряд состояния (данные), которые это может использовать для влияния на поведение, когда выполняется.
Можно использовать блоки для создания выражений function, которые могут быть переданы API, дополнительно сохранили и использовали многократными потоками. Блоки особенно полезны как обратный вызов потому что групповые переносы и код, который будет выполняться на обратном вызове и данных, необходимых во время того выполнения.
Блоки доступны в GCC и Лязге, как поставлено с инструментами v10.6 Xcode разработчика OS X. Можно использовать блоки с OS X v10.6 и позже, и iOS 4.0 и позже. Блочное время выполнения является открытым исходным кодом и может быть найдено в репозитории подпроекта компилятора-rt LLVM. Блоки были также представлены рабочей группе стандартов C как N1370: Расширения Apple C. Поскольку Objective C и C++ оба получены из C, блоки разработаны для работы со всеми тремя языками (а также Objective C ++). Синтаксис отражает эту цель.
Необходимо считать этот документ для изучения то, что блочные объекты и как можно использовать их от C, C++ или Objective C.
Организация этого документа
Этот документ содержит следующие главы:
Начало работы с Блоками обеспечивает быстрое, практическое, введение в блоки.
Концептуальный Обзор обеспечивает концептуальное введение в блоки.
Объявление и Создание Блоков показывают Вам, как объявить основные переменные и как реализовать блоки.
Блоки и Переменные описывают взаимодействие между блоками и переменными, и определяют
__block
модификатор типа хранения.Используя Блоки иллюстрирует различные образцы использования.