swift3 xcode8 xcode8-beta4

swift3 - preferredStatusBarStyle eliminado en Swift 3?



xcode8 xcode8-beta4 (2)

así que recientemente actualicé a Xcode 8 y acabo de recibir este error para el siguiente código.

El error es que el método no anula ningún método de sus superclases.

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

Realmente agradecería ayuda, ¡gracias!


El API 10.0 API Diffs muestra que el UIViewController.preferredStatusBarStyle() -> UIStatusBarStyle se ha eliminado y que se ha agregado la propiedad UIViewController.preferredStatusBarStyle .

De manera similar, con Xcode 8, puede hacer clic derecho en cualquier UIViewController en su código, seleccionar Saltar a definición y luego realizar una búsqueda de preferredStatusBarStyle . Descubrirá que preferredStatusBarStyle ahora tiene la siguiente declaración:

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

Por lo tanto, el siguiente fragmento de código muestra cómo anular preferredStatusBarStyle con Xcode 8 / Swift 3:

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

O, en un estilo mucho más corto y preferido:

override var preferredStatusBarStyle: UIStatusBarStyle { return .lightContent }


En iOS 10, preferredStatusBarStyle es una propiedad, no un método. Entonces, en lugar de anularlo con una declaración de func como lo has hecho, anulas el getter con una declaración de var :

override var preferredStatusBarStyle: UIStatusBarStyle { return .lightContent }

El mensaje de error del compilador de Swift aquí probablemente sea mejor, ya que parece saber que su función de reemplazo debe cubrir una propiedad, probablemente podría ofrecerlo como solución. Recomiendo archivar un error al código abierto de Swift .