preferredStatusBarStyle supprimé dans Swift 3?

J’ai donc récemment mis à jour Xcode 8 et je viens de recevoir cette erreur pour le code suivant.

L’erreur est que la méthode ne remplace aucune méthode de ses superclasses.

override func preferredStatusBarStyle() -> UIStatusBarStyle { return UIStatusBarStyle.lightContent } 

entrer la description de l'image ici

J’apprécierais vraiment l’aide, merci!

    Dans iOS 10, preferredStatusBarStyle est une propriété et non une méthode. Ainsi, au lieu de la remplacer par une déclaration func comme vous l’avez fait, vous remplacez le getter par une déclaration var :

     override var preferredStatusBarStyle: UIStatusBarStyle { return .lightContent } 

    Le message d’erreur du compilateur Swift ici pourrait probablement être meilleur – puisqu’il semble savoir que votre func de remplacement est supposé couvrir une propriété, il pourrait probablement offrir cela comme un correctif. Je recommande de classer un bug dans Swift open source .

    IOS 10.0 API Diffs montre que la UIViewController.preferredStatusBarStyle() -> UIStatusBarStyle a été supprimée et que la propriété UIViewController.preferredStatusBarStyle a été ajoutée .


    De la même manière, avec Xcode 8, vous pouvez cliquer avec le bouton droit de la souris sur n’importe quel UIViewController dans votre code, sélectionner Aller à la définition , puis effectuer une recherche sur preferredStatusBarStyle . Vous découvrirez que preferredStatusBarStyle maintenant la déclaration suivante:

     @available(iOS 7.0, *) open var preferredStatusBarStyle: UIStatusBarStyle { get } 

    Par conséquent, l’extrait de code suivant montre comment substituer preferredStatusBarStyle avec Xcode 8 / Swift 3:

     override var preferredStatusBarStyle: UIStatusBarStyle { get { return .lightContent } } 

    Ou, dans un style beaucoup plus court et préféré:

     override var preferredStatusBarStyle: UIStatusBarStyle { return .lightContent }