回答:
たとえば、Availableタグを使用できます。
@available(*, deprecated)
func myFunc() {
// ...
}
ここで*はプラットフォームです(iOS、iOSApplicationExtension、macOS、watchOS、tvOS、* for allなど)。
また、それがあったから、プラットフォームのバージョンを指定することができintroduced
、deprecated
、obsoleted
、renamed
、と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
}
プロジェクトが複数のプラットフォームをターゲットにしている場合は、次のように複数のタグを使用できます。
@available(tvOS, deprecated:9.0.1)
@available(iOS, deprecated:9.1)
@available(macOS, unavailable, message: "Unavailable on macOS")
func myFunc() {
// ...
}
詳細については、Swiftのドキュメントをご覧ください。
*, deprecated: 10.0
以下のためにそれを廃止しますiOS 10
、tvOS 10
など、私たちは結合するべきではないと思います*
バージョン番号と?それをより良くする方法についてのアイデアはありますか?
@available(*, deprecated: 10.0)
したがって、コードがiOSでのみ実行されない場合は非常に悪い考えです
開始スウィフト3とスウィフト4、バージョン番号はオプションです。次のように入力するだけです。
@available(*, deprecated)
func foo() {
// ...
}
または、メッセージが必要な場合は、それに合わせてください。
@available(*, deprecated, message: "no longer available ...")
func foo() {
// ...
}
@available(*, deprecated, message = "no longer available ...")
場合、メッセージを含める場合の構文のようです。
これを使用して、新しい関数でエントリを自動修正できます
@available(*, deprecated, renamed: "myNewFunc")
func myOldFunc() {
// ...
}
func myNewFunc() {
// ...
}
*の代わりに、swiftバージョン番号にswiftを使用できます。
非推奨の関数は警告を生成しますが、引き続き呼び出すことができます。(警告)
廃止された関数は、完全に呼び出されるのを防ぎます。(エラー)
@available(swift, deprecated: 4.0, obsoleted: 4.2, message: "This will be removed in v4.2, please migrate to ...")
または、iOS、macOS、watchOS、tvOSなどの他のオプションを使用します...
@available(iOS, deprecated:7.0, obsoleted: <ObsoletedVersion>, renamed: "myFuncNew", message: "Please use new method - myFuncNew()")
func myFuncOld() {
//
}
場合deployment target
です9.0
と、
1. <ObsoletedVersion>
== 10.0
-warning
2. <ObsoletedVersion>
== 8.0
-compile error
=
sはsに置き換えられ:
ます。