1. This block declaration is not a prototype
- 该结果引自 XCode9的新变化
我们定义一个不带参数的block,通常是如下的方式
typedef void (^UpdateSwichBtnBlock)();
在 Xcode9 中会提示一个警告
This block declaration is not a prototype Insert ‘void'
解决方式可以是如下的几种
1. 手动补全
typedef void (^UpdateSwichBtnBlock)(void);
但是这样很多第三方要改,涉及的面太大了,目前可能不太适合,虽然这个是趋势。
2. 手动屏蔽
#pragma clang diagnostic push #pragma clang diagnostic ignored "-Wstrict-prototypes" typedef void (^UpdateSwichBtnBlock)(); #pragma clang diagnostic pop
彻底的暂时解决所有这种警告的方式
3. 工程设置
Build Settings -> Strict Prototypes -> NO
不过这不是一种好习惯,只是暂时性的不让提示这种类型的警告而已