Yanıtlar:
Kullanılabilir etiketini kullanabilirsiniz, örneğin:
@available(*, deprecated)
func myFunc() {
// ...
}
Platform * nerede (iOS, iOSApplicationExtension, macOS, watchOS, tvOS, * herkes için).
Ayrıca öyleydi ettiği platforma sürümünü belirtebilirsiniz introduced
, deprecated
, obsoleted
, renamed
, ve 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
}
Projeniz birden çok platformu hedefliyorsa, aşağıdakiler gibi birkaç etiket kullanabilirsiniz:
@available(tvOS, deprecated:9.0.1)
@available(iOS, deprecated:9.1)
@available(macOS, unavailable, message: "Unavailable on macOS")
func myFunc() {
// ...
}
Swift belgelerinde daha fazla ayrıntı .
*, deprecated: 10.0
iOS 10
, tvOS 10
vb. için kullanımdan kaldırılacak sanırım *
bir sürüm numarası ile birleştirmemeliyiz ? Nasıl daha iyi yapılacağı hakkında bir fikrin var mı?
@available(*, deprecated: 10.0)
Swift 3 ve Swift 4'ten başlayarak sürüm numarası isteğe bağlıdır. Şimdi şunu yazabilirsiniz:
@available(*, deprecated)
func foo() {
// ...
}
Veya bir mesajla birlikte gitmek istiyorsanız:
@available(*, deprecated, message: "no longer available ...")
func foo() {
// ...
}
@available(*, deprecated, message = "no longer available ...")
bir ileti eklerken görünmektedir .
Bunu, yeni işlevinizle girişinizi otomatik olarak düzeltmek için kullanabilirsiniz
@available(*, deprecated, renamed: "myNewFunc")
func myOldFunc() {
// ...
}
func myNewFunc() {
// ...
}
* Yerine swift Sürüm numarası için swift kullanabilirsiniz.
Kullanımdan kaldırılmış işlevler uyarı oluşturur ancak yine de çağrılabilir. (Uyarı)
Eski işlevler tamamen çağrılmasını engeller. (Hata)
@available(swift, deprecated: 4.0, obsoleted: 4.2, message: "This will be removed in v4.2, please migrate to ...")
veya iOS, macOS, watchOS, tvOS gibi diğer Seçenekleri kullanın ...
@available(iOS, deprecated:7.0, obsoleted: <ObsoletedVersion>, renamed: "myFuncNew", message: "Please use new method - myFuncNew()")
func myFuncOld() {
//
}
Eğer deployment target
bir 9.0
ve
1. <ObsoletedVersion>
== 10.0
-warning
2. <ObsoletedVersion>
== 8.0
-compile error
=
s , s ile değiştirilir:
.