2016-08-01 36 views
0

Seit Swift 2 gibt es einen sauberen Weg, wenn einige Klassen oder Eigenschaft zu überprüfen ist, zur Verfügung:Swift: Wie überprüft man die Verfügbarkeit von Protokollen?

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

aber ich kann nicht überall finden, wie für das Protokoll der Verfügbarkeit zu prüfen, zum Beispiel SFSafariViewControllerDelegate. Irgendwelche Vorschläge?

+0

Art von doppelten http://stackoverflow.com/questions/33308196/checking-for-protocol-availability-in-swift –

+0

Eigentlich ist es so duplizieren :), werde ich meine Frage beantworten downvotes zu verhindern:) – user3352185

Antwort

0

Dank @lu_, habe ich eine Lösung: Verwenden von Erweiterungen.

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) 
    } 
}