Блок - это всего лишь раздел кода, вот и все.
С другой стороны, аргумент или параметр - это значение, которое передается функции или блоку, поэтому код в этом блоке может его использовать.
Например:
^(int anIntegerArgument){
//this is inside of a block
}
целом Это утверждение называется блоком. Однако значение anIntegerArgument является аргументом.
Блок может быть аргументом, если вам нужно передать в метод какой-то пользовательский код. Например, в SpriteKit после запуска действия вы можете выбрать запуск кода после его завершения. Для этого вы передаете блок в качестве аргумента:
[self runAction:anAction completion:^{
//block run at the end of an action
}];
Блок может иметь аргументы. Блок также может быть аргументом метода, который принимает блок. –