Swift 代码适配不同系统版本的判断方式

在代码中检查不同的swift版本

#if swift(>=3.0)
func foo(with array: [Any]) {
    print("Swift 3 implementation")
}
#else
func foo(with array: [AnyObject]) {
    print("Swift 2 implementation")
}
#endif

在方法中根据不同的系统版本,处理对应的逻辑

private func registerForLocalNotifications() {
    if #available(iOS 10, *) {
        UNUserNotificationCenter.current().requestAuthorization(options: [.alert, .sound]) { granted, error in
            guard granted && error == nil else {
                // display error
                print(error?.localizedDescription ?? "Unknown error")
                return
            }
        }
    } else {
        let types: UIUserNotificationType = [.badge, .sound, .alert]
        let settings = UIUserNotificationSettings(types: types, categories: nil)
        UIApplication.shared.registerUserNotificationSettings(settings)
    }
}

在方法外根据不同的系统版本,处理对应的逻辑。(最小支持版本,最大支持版本)

// 这里支持的系统版本是 大于等于 9.0 小于11.0
@available(iOS, introduced: 9.0, deprecated: 11.0)
func someMethod() {
    // this is only supported iOS 9 and 10
}

在方法外根据不同的系统版本,处理对应的逻辑。(最小支持版本)

// 这里支持的系统版本是 大于等于 10.0 之后的所有版本
@available(iOS 10.0, *)
func someMethod() {
    // this is only available in iOS 10 and later
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    阳明AI阅读 16,026评论 3 119
  • 1.稍微一亲近就口无遮拦的毛病必须改。 2. 多把“你听懂了没”换成“我讲明白了没”。认真看 保存下来 以后可能用...
    请叫我秀哥阅读 433评论 0 2
  • 深深庭院, 锁不住寂寞 那望也, 望不穿的秋水 已是入冬, 时令寒冷 添衣无需, 在乎世俗眼光
    晏叔阅读 312评论 0 4
  • 语音识别,很多人都见识过了,科大讯飞的语音输入法,可以每分钟输入400个汉字,准确率极高,几乎完全可以取代速记员。...
    相信我我是为了你好阅读 448评论 0 0
  • 突然收到老友的信息,一长段的文字,描述的是最近遇到的心烦又为难的选择。老友是家里的独生女,自小跟母亲关系算不上好,...
    桃木猫虫阅读 385评论 0 2