Jawaban:
Anda dapat menggunakan tag yang Tersedia, misalnya:
@available(*, deprecated)
func myFunc() {
// ...
}
Di mana * adalah platform (iOS, iOSApplicationExtension, macOS, watchOS, tvOS, * untuk semua, dll.).
Anda juga dapat menentukan versi dari platform dari mana itu introduced
, deprecated
, obsoleted
, renamed
, dan 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
}
Jika proyek Anda menargetkan beberapa platform, Anda dapat menggunakan beberapa tag seperti:
@available(tvOS, deprecated:9.0.1)
@available(iOS, deprecated:9.1)
@available(macOS, unavailable, message: "Unavailable on macOS")
func myFunc() {
// ...
}
Lebih detail dalam dokumentasi Swift .
*, deprecated: 10.0
akan mencabutnya untuk iOS 10
, tvOS 10
dll, saya kira kita tidak boleh menggabungkan *
dengan nomor versi? Ada ide tentang bagaimana melakukannya dengan lebih baik?
@available(*, deprecated: 10.0)
oleh karena itu ide yang sangat buruk jika kode tidak hanya berjalan di iOS
Mulai Swift 3 dan Swift 4 , nomor versi adalah opsional. Anda sekarang dapat mengetik:
@available(*, deprecated)
func foo() {
// ...
}
Atau jika Anda ingin sebuah pesan meneruskannya:
@available(*, deprecated, message: "no longer available ...")
func foo() {
// ...
}
@available(*, deprecated, message = "no longer available ...")
ketika menyertakan pesan.
Anda dapat menggunakan ini untuk memperbaiki entri Anda dengan fungsi baru Anda
@available(*, deprecated, renamed: "myNewFunc")
func myOldFunc() {
// ...
}
func myNewFunc() {
// ...
}
Alih-alih * Anda dapat menggunakan swift, untuk nomor Versi swift.
Fungsi yang tidak digunakan lagi menghasilkan peringatan tetapi masih bisa dipanggil. (Peringatan)
Fungsi usang menghentikannya dari dipanggil seluruhnya. (Kesalahan)
@available(swift, deprecated: 4.0, obsoleted: 4.2, message: "This will be removed in v4.2, please migrate to ...")
atau gunakan Pilihan lain seperti iOS, macOS, watchOS, tvOS ...
@available(iOS, deprecated:7.0, obsoleted: <ObsoletedVersion>, renamed: "myFuncNew", message: "Please use new method - myFuncNew()")
func myFuncOld() {
//
}
Jika deployment target
ini 9.0
dan
1. <ObsoletedVersion>
== 10.0
-warning
2. <ObsoletedVersion>
== 8.0
-compile error
=
s diganti dengan:
s.