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

我的应用程序部署目标是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方法。 它对我不起作用。

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 one。

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

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

摘录自:Apple Inc.“The Swift Programming Language(Swift 2 Prerelease)。”iBooks。 https://itun.es/us/k5SW7.l

检查ios版本是最好的方法

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