missing context for method declaration

missing context for method declaration_第1张图片
截图1
missing context for method declaration_第2张图片
截图2

截图1报错的函数形式只能用在类中。

它们之间还有一些区别:

(1)类的函数形式有外部参数名,但是main.m中定义的这种函数形式没有。

外部参数名是什么呢?它可以起到提示,解释某个参数意义的作用(另外,在Swift中也可以自己选择性加入外部�参数名)。
分别调用TestClass的方法和main.m文件里定义的方法看出区别:


missing context for method declaration_第3张图片
截图3

如string2,string3,和completionHandler都是外部参数名,而main的自定义方法里头只有函数名。

(2)两种函数形式的代码块参数格式也不同。

(为了清晰�直观而加入了某些空格,实际编码无需太多空格。)
第一种是 (void (^) (id response)) completionHandler
第二种是 (void (^completionHandler) (id response))
另:第二种形式的代码块前的void可以去掉,但会报warning,这时默认返回为int类型。

总结:这2种不同函数形式与其语言风格相关,类中定义的方法是Objective-C风格,而main的函数形式是C语言风格。

你可能感兴趣的:(missing context for method declaration)