Objective-C 中的块和参数之间的区别

Difference between blocks and arguments in Objective-C

在Objective C中,如果块可以接受参数和return值(https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/ProgrammingWithObjectiveC/WorkingwithBlocks/WorkingwithBlocks.html),

那么块和参数之间有什么区别?

一个块就是一段代码,仅此而已。

另一方面,参数或参数是传递给函数或块的值,以便该块中的代码可以使用它。

例如:

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

这整个语句称为块。然而,值 anIntegerArgument 是一个参数。

可以 如果您需要将一些自定义代码传递到方法中,则可以作为参数。例如,在 SpriteKit 中,在 运行 完成一个动作后,你可以选择 运行 一些代码。为此,您传入一个块作为参数:

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