Im Gegensatz zu Objective-C verfügt Swift über keinen Präprozessor. Gibt es also noch eine Möglichkeit, Mitglieder einer Klasse manuell zu verwerfen?
Ich suche etwas Ähnliches:
-(id)method __deprecated;
Im Gegensatz zu Objective-C verfügt Swift über keinen Präprozessor. Gibt es also noch eine Möglichkeit, Mitglieder einer Klasse manuell zu verwerfen?
Ich suche etwas Ähnliches:
-(id)method __deprecated;
Sie können das Tag Verfügbar beispielsweise verwenden:
@available(*, deprecated)
func myFunc() {
// ...
}
Wobei * die Plattform ist (iOS, iOSApplicationExtension, macOS, watchOS, tvOS, * für alle usw.).
Sie können auch die Version der Plattform angeben , von dem es war introduced
, deprecated
, obsoleted
, renamed
, und 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
}
Wenn Ihr Projekt auf mehrere Plattformen abzielt, können Sie mehrere Tags wie folgt verwenden:
@available(tvOS, deprecated:9.0.1)
@available(iOS, deprecated:9.1)
@available(macOS, unavailable, message: "Unavailable on macOS")
func myFunc() {
// ...
}
Weitere Details in der Swift-Dokumentation .
=
s durch:
s ersetzt.*, deprecated: 10.0
wird deprecate esiOS 10
,tvOS 10
etc, ich denke , wir nicht kombinieren sollte*
mit einer Versionsnummer? Irgendwelche Ideen, wie man es besser macht?@available(*, deprecated: 10.0)
Daher ist es eine sehr schlechte Idee, wenn der Code nicht nur unter iOS ausgeführt wirdAb Swift 3 und Swift 4 ist die Versionsnummer optional. Sie können jetzt einfach Folgendes eingeben:
Oder wenn Sie eine Nachricht mitmachen möchten:
quelle
@available(*, deprecated, message = "no longer available ...")
beim Einfügen einer Nachricht zu sein.Sie können dies verwenden, um Ihre Einträge mit Ihrer neuen Funktion automatisch zu korrigieren
Anstelle von * können Sie für die schnelle Versionsnummer swift verwenden.
Veraltete Funktionen erzeugen Warnungen, können aber trotzdem aufgerufen werden. (Warnung)
Veraltete Funktionen verhindern, dass es vollständig aufgerufen wird. (Error)
oder verwenden Sie andere Optionen wie iOS, macOS, watchOS, tvOS ...
quelle
Wenn
deployment target
ist9.0
und1.
<ObsoletedVersion>
==10.0
-warning
2.
<ObsoletedVersion>
==8.0
-compile error
quelle