missing context for method declaration

截图1
截图2

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

它们之间还有一些区别:

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

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


截图3

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

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

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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容