Answers:
您可以使用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() {
// ...
}
更多详细信息,请参见Swift文档。
*, 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代替*,作为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。