如何避免误使用高版本API导致的崩溃问题
- 打开
-Wunguarded-availability
在调用高版本API时候报warning,为避免warning过多而忽视,用-Werror-unguarded-availability
标记强制编译不过
使用高版本API检测配置 - 如果代码本身安全(使用了
respondsToSelector:
保护),可以用下面两种方式去除警告- 方式一
// 忽略警告:误使用高版本API版 #define K_Warning_Ignored_Start_ApiCheck _Pragma("clang diagnostic push") _Pragma("clang diagnostic ignored \"-Wunguarded-availability\"") // 这里写忽略警告的code #define K_Warning_Ignored_End_ApiCheck _Pragma("clang diagnostic pop")
- 方式二
@available
if (@available(iOS 8.0, *)) { // 这里写忽略警告的code }
- 针对pod需要在
.podspec
文件中添加compiler_flags
配置
网友评论