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 .