xcode - 在编译时检查 iOS10 或更低版本

标签 xcode notifications swift2 ios10

我正在使用 UNUserNotificationCenter 实现新通知。但我需要保持它向后兼容,因此我到处检查:

if #available(iOS 10.0, *) { ... }
else { ... }

这在 iOS10 中似乎运行良好。为了能够使用 UNUserNotificationCenter 框架,我必须导入:
import NotificationCenter

但是它使iOS9.3 崩溃,因为它不知道它是什么。
这是一个编译时操作,而不是运行时操作 - 所以这意味着我不能对导入设置条件。如果我创建一个单独的类,并把
@available(iOS 10.0, *)
class ....

在类实现之前,导入也发生了。
我应该如何解决这个问题?

最佳答案

尝试导航到 Build Phases->Link Binary with Libraries 并添加 NotificationCenter 并将状态设置为“可选”而不是“必需”。

关于xcode - 在编译时检查 iOS10 或更低版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38916135/

相关文章:

ios - 这个静态变量会像 C 一样工作吗?

ios - Swift 1.2 到 2.0 的转换 - Guard 与 if let

swift - 设置数据源和委托(delegate)会使 UITableView 的应用程序崩溃

Xcode 无法将功能分支 merge 回主分支“源代码管理操作失败,因为找不到文件 ___

objective-c - 在用 classFromString 实例化的类中调用方法?

后台 iOS 通知

ios - 本地通知不适用于某些用户 (iOS 8)

ios - 在我的应用程序中检测 Twitter 和 Facebook 通知

ios - 使用自动布局独立切换两个内联项目的可见性

ios - 快速与容器 View 交互