ios - 如何检测到部分代码与 ios 版本不匹配?
问题描述
我在项目中使用了各种功能。比如iOS 12之后的图库。比如iOS 12之后的OTP功能
应用程序版本设置为 ios 11。但我希望它在代码中发出警告。我看不到
我可以收到类似“您必须打开一个 if 块才能使用此功能”的消息吗?
解决方案
Xcode 确实提供了这些类型的警告?!
当使用目标 iOS 版本中不可用的东西时,您应该会得到类似“功能仅在 iOS 12.0 或更高版本中可用”的信息。平时需要注意的
if ( @available( iOS 12, * ) )
警告就会消失。
根据评论
我假设基于您将版本设置为 11 的问题,但根据您的评论,您需要正确设置它,例如在目标旁边的 Xcode 中,它应该看起来像这样(对于 iOS 10)。
如果您在没有警卫的情况下使用它,您应该会收到与此类似的警告
和编译器标志应该打开(默认),但您可以在项目的构建设置中的 Other warning flags 下强制执行-Wunguarded-availability
此操作。-Wunguarded-availability-new
更新
我为此使用了 Xcode 12.1。创建了一个新的默认 iOS 项目。然后在target中,选择iOS 11,如下图。
然后到项目创建的视图控制器中,我添加了一个文本字段,将其链接为如下所示的属性,并立即弹出您正在寻找的警告。
感谢 Ol Sen Xcode 设置
根据 Ol Sen 的评论 - 是的,请检查是否已启用。应该是默认的。请注意,您可以在目标下设置它,但如图所示,最好在项目级别设置它。
推荐阅读
- altium-designer - Altium Designer - 保留旧参考代号
- java - 如何解决此 itext v5 pdf 格式错误?
- node.js - Socket.io 和 React:警告:无法对未安装的组件执行 React 状态更新
- python - 使用 tensorflow 和 keras 进行单值 WaveNet 预测
- javascript - 按等级对有序列表进行排序(javascript)
- intellij-idea - 使用 jetbrains IDE(Intellij 或 Rider)登录 GitHub 企业
- r - 上传数据文件并为每列创建复选框和文本输入和下拉列表的闪亮应用程序
- android - RxJava:如果返回 Single 的函数抛出异常,如何捕获错误?
- javascript - 获取请求标头未在 chrome (v90.0.44) 中发送 cookie,在 Firefox(v88.0) (JS) 中工作
- asterisk - Asterisk GoSub() 函数对我不起作用