如何检查 iOS 中是否存在方法 systemFontOfSize(fontSize: weight:)

How to check does method systemFontOfSize(fontSize: weight:) exist in iOS

我的应用程序部署目标是 iOS 7.0 我想在 iOS 8+ 的设备上使用方法 systemFontOfSize(fontSize: weight:)。 iOS 7 不支持此方法(使用 weight: 参数),我的应用程序崩溃了。特别是 iOS 7 我想设置 Helvetica Light 字体而不是 SystemFont Light。

最好的检查方法是什么?我需要检查 iOS 版本还是我可以检查方法?怎么样?

我使用 swift 并尝试了

if let font = UIFont.systemFontOfSize(12, weight: UIFontWeightLight) 

respondsToSelector 方法。 它对我不起作用。

检查 ios 版本是最好的方法

if NSFoundationVersionNumber > NSFoundationVersionNumber_iOS_7_0 {
    // code
} else {
    // code
}

respondsToSelector 按预期工作:

    let font: UIFont
    if UIFont.respondsToSelector("systemFontOfSize:weight:") {
        println("YES")
        font = .systemFontOfSize(12, weight: UIFontWeightLight)
    }
    else {
        println("NO")
        font = UIFont(name: "HelveticaNeue-Light", size: 12)!
    }

而且我会推荐 HelveticaNeue 而不是 Helvetica,因为系统字体是 Neue 一种。

使用 Swift 书中推荐的 #available 表达式。

if #available(iOS 8, *) {
    // Use iOS 8 APIs on iOS
} else {
    // Fall back to earlier iOS APIs
}

摘自:Apple Inc.“Swift 编程语言(Swift 2 预发行版)。”电子书。 https://itun.es/us/k5SW7.l