这个问题说明了一切。原因:
(void)methodWithParamA:(id)paramA paramB:(id)paramB;
[obj methodWithParamA:valA paramB:valB];
和
void(^ block)(id paramA, id paramB);
block(valA, valB);
我不确定通过学习这个问题的答案我一定会得到任何东西,但我很困惑,一种语言可以有这么多不同的语法......
答案 0 :(得分:3)
一个块是功能,没有"当前实例" (或"当前类"对于调用方法)与方法一样。
块调用因此看起来像一个函数调用; a"块" type是一个指针类型,并且非常接近函数指针类型的语法;并且块体紧跟函数体的语法。
C支持块,它具有函数但不具有方法。