2015-08-31 1 views
-1

В Objective C, если блок может принимать аргументы и возвращаемые значения (https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/ProgrammingWithObjectiveC/WorkingwithBlocks/WorkingwithBlocks.html),Разница между блоками и аргументы в Objective-C

то, что разница между блоками и аргументами?

+1

Блок может иметь аргументы. Блок также может быть аргументом метода, который принимает блок. –

ответ

3

Блок - это всего лишь раздел кода, вот и все.

С другой стороны, аргумент или параметр - это значение, которое передается функции или блоку, поэтому код в этом блоке может его использовать.

Например:

^(int anIntegerArgument){ 
    //this is inside of a block 
} 

целом Это утверждение называется блоком. Однако значение anIntegerArgument является аргументом.

Блок может быть аргументом, если вам нужно передать в метод какой-то пользовательский код. Например, в SpriteKit после запуска действия вы можете выбрать запуск кода после его завершения. Для этого вы передаете блок в качестве аргумента:

[self runAction:anAction completion:^{ 
    //block run at the end of an action 
}]; 
+0

Итак, всякий раз, когда мне нужно использовать аргумент, я могу просто передать аргумент в блок, подобный вашему примеру выше? – munmunbb

+1

Да, это точно, как вы передадите значение блоку. – MaxKargin