A diferencia de Objective-C, Swift no tiene preprocesador, entonces, ¿hay alguna manera de desaprobar manualmente a los miembros de una clase?
Estoy buscando algo similar a esto:
-(id)method __deprecated;
A diferencia de Objective-C, Swift no tiene preprocesador, entonces, ¿hay alguna manera de desaprobar manualmente a los miembros de una clase?
Estoy buscando algo similar a esto:
-(id)method __deprecated;
Puede usar la etiqueta Disponible, por ejemplo:
@available(*, deprecated)
func myFunc() {
// ...
}
Donde * es la plataforma (iOS, iOSApplicationExtension, macOS, watchOS, tvOS, * para todos, etc.).
También puede especificar la versión de la plataforma de la que era introduced
, deprecated
, obsoleted
, renamed
, y message
:
@available(iOS, deprecated:6.0)
func myFunc() {
// calling this function is deprecated on iOS6+
}
Or
@available(iOS, deprecated: 6.0, obsoleted: 7.0, message: "Because !")
func myFunc() {
// deprecated from iOS6, and obsoleted after iOS7, the message "Because !" is displayed in XCode warnings
}
Si su proyecto apunta a múltiples plataformas, puede usar varias etiquetas de esta manera:
@available(tvOS, deprecated:9.0.1)
@available(iOS, deprecated:9.1)
@available(macOS, unavailable, message: "Unavailable on macOS")
func myFunc() {
// ...
}
Más detalles en la documentación de Swift .
=
s se reemplazan por:
s.*, deprecated: 10.0
lo desaprobaráiOS 10
,tvOS 10
etc., supongo que no deberíamos combinarlo*
con un número de versión. ¿Alguna idea sobre cómo hacerlo mejor?@available(*, deprecated: 10.0)
por lo tanto, es una muy mala idea si el código no solo se ejecuta en iOSA partir de Swift 3 y Swift 4 , el número de versión es opcional. Ahora puede simplemente escribir:
O si desea un mensaje, hágalo:
fuente
@available(*, deprecated, message = "no longer available ...")
cuando se incluye un mensaje.Puede usar esto para corregir automáticamente las entradas con su nueva función
En lugar de * puede usar swift, para el número de Versión de swift.
Las funciones en desuso generan advertencias pero aún se pueden llamar. (Advertencia)
Las funciones obsoletas impiden que se llame por completo. (Error)
o use otras opciones como iOS, macOS, watchOS, tvOS ...
fuente
Si
deployment target
es9.0
y1.
<ObsoletedVersion>
==10.0
-warning
2.
<ObsoletedVersion>
==8.0
-compile error
fuente