답변:
다음과 같이 Available 태그를 사용할 수 있습니다.
@available(*, deprecated)
func myFunc() {
// ...
}
여기서 *는 플랫폼입니다 (iOS, iOSApplicationExtension, macOS, watchOS, tvOS, * 등).
또한 그것이있는 플랫폼의 버전을 지정할 수 있습니다 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() {
// ...
}
*, deprecated: 10.0
그것을 지양 iOS 10
, tvOS 10
등, 우리가 결합해서는 안 추측 *
버전 번호와 함께? 더 잘하는 방법에 대한 아이디어가 있습니까?
@available(*, deprecated: 10.0)
따라서 코드가 iOS에서만 실행되는 것이 아니라면 아주 나쁜 생각입니다
Swift 3 및 Swift 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를 사용할 수 있습니다.
더 이상 사용되지 않는 함수는 경고를 생성하지만 여전히 호출 할 수 있습니다. (경고)
사용되지 않는 함수는 완전히 호출되지 않습니다. (오류)
@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로 바뀝니다:
.