【问题标题】:Swift: how to check for availability of protocols?Swift:如何检查协议的可用性?
【发布时间】:2016-08-01 11:36:59
【问题描述】:

从 Swift 2 开始,有一种更简洁的方法可以检查某些类或属性是否可用:

@available(iOS 8.0, *)
var someVarHere = someClassHere()

但是,我在任何地方都找不到如何检查协议可用性,例如SFSafariViewControllerDelegate。有什么建议吗?

【问题讨论】:

标签: swift ios9 availability


【解决方案1】:

感谢@lu_,我得到了一个解决方案:使用扩展。

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()

        if #available(iOS 9, *) {
            let sfc = SFSafariViewController(URL: NSURL(string: "http://www.google.bg")!)
            sfc.delegate = self
            presentViewController(sfc, animated: true, completion: nil)
        }
    }
}

@available(iOS 9, *)
extension ViewController: SFSafariViewControllerDelegate {
    func safariViewControllerDidFinish(controller: SFSafariViewController) {
        controller.dismissViewControllerAnimated(true, completion: nil)
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-02
    • 2014-11-09
    • 2021-10-13
    • 1970-01-01
    • 2019-12-31
    • 2023-04-06
    相关资源
    最近更新 更多