Чем блоки отличаются от обычных методов и функций в Objective -C?

В чем преимущество использования блоков перед обычными методами и функциями в Objective-C? Я прочитал документацию, но не могу найти конкретные варианты использования блоков вместо других языковых функций.

Я уверен, что что-то упустил, поэтому кто-то может объяснить преимущества блоков проще, чем существующая документация?

13
задан Brad Larson 23 August 2010 в 16:49
поделиться

1 ответ

Блоки - это способ обернуть фрагмент кода и эффективно сохранить его для дальнейшего использования. Блок обычно используется вместо функции обратного вызова. Более новые API в iPhone SDK используют блоки таким образом. API примет «блок» кода, который будет запускаться по завершении.

Это избавляет вас от необходимости создавать свои собственные потоки и поддерживать состояние каждого потока, управлять блокировками, настраивать пулы автозапуска и т. Д.

При использовании с Grand Central Dispatch (GCD) блоки API могут запускаться в очередях и целых части кода можно заставить работать асинхронно с очень небольшими усилиями, но при этом сохраняя надежность, необходимую для многопоточного кода.

13
ответ дан 1 December 2019 в 22:06
поделиться