首页 > 解决方案 > 如何检测到部分代码与 ios 版本不匹配?

问题描述

我在项目中使用了各种功能。比如iOS 12之后的图库。比如iOS 12之后的OTP功能

应用程序版本设置为 ios 11。但我希望它在代码中发出警告。我看不到

我可以收到类似“您必须打开一个 if 块才能使用此功能”的消息吗?

标签: iosobjective-cswiftxcode

解决方案


Xcode 确实提供了这些类型的警告?!

当使用目标 iOS 版本中不可用的东西时,您应该会得到类似“功能仅在 iOS 12.0 或更高版本中可用”的信息。平时需要注意的

if ( @available( iOS 12, * ) )

警告就会消失。

根据评论

我假设基于您将版本设置为 11 的问题,但根据您的评论,您需要正确设置它,例如在目标旁边的 Xcode 中,它应该看起来像这样(对于 iOS 10)。

目标 iOS 版本

如果您在没有警卫的情况下使用它,您应该会收到与此类似的警告

Xcode 可用性警告

和编译器标志应该打开(默认),但您可以在项目的构建设置中的 Other warning flags 下强制执行-Wunguarded-availability操作-Wunguarded-availability-new

更新

我为此使用了 Xcode 12.1。创建了一个新的默认 iOS 项目。然后在target中,选择iOS 11,如下图。

目标 iOS 项目

然后到项目创建的视图控制器中,我添加了一个文本字段,将其链接为如下所示的属性,并立即弹出您正在寻找的警告。

警告

感谢 Ol Sen Xcode 设置

根据 Ol Sen 的评论 - 是的,请检查是否已启用。应该是默认的。请注意,您可以在目标下设置它,但如图所示,最好在项目级别设置它。

Xcode 更多设置


推荐阅读