iOS中如何避免误使用高版本API导致的崩溃问题

如何避免误使用高版本API导致的崩溃问题

  • 打开-Wunguarded-availability在调用高版本API时候报warning,为避免warning过多而忽视,用-Werror-unguarded-availability标记强制编译不过
    iOS中如何避免误使用高版本API导致的崩溃问题_第1张图片
    使用高版本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配置

参考文章

  • iOS API 版本检查

你可能感兴趣的:(iOS中如何避免误使用高版本API导致的崩溃问题)