Câu trả lời:
Bạn có thể sử dụng thẻ Có sẵn, ví dụ:
@available(*, deprecated)
func myFunc() {
// ...
}
Trong đó * là nền tảng (iOS, iOSApplicationExtension, macOS, watchOS, tvOS, * cho tất cả, v.v.).
Bạn cũng có thể xác định phiên bản của nền tảng mà từ đó nó đã introduced
, deprecated
, obsoleted
, renamed
, và 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
}
Nếu dự án của bạn nhắm mục tiêu nhiều nền tảng, bạn có thể sử dụng một số thẻ như vậy:
@available(tvOS, deprecated:9.0.1)
@available(iOS, deprecated:9.1)
@available(macOS, unavailable, message: "Unavailable on macOS")
func myFunc() {
// ...
}
Thêm chi tiết trong tài liệu Swift .
*, deprecated: 10.0
sẽ phản đối nó cho iOS 10
, tvOS 10
v.v., tôi đoán chúng ta không nên kết hợp *
với một số phiên bản? Bất kỳ ý tưởng về làm thế nào để làm điều đó tốt hơn?
@available(*, deprecated: 10.0)
do đó, đó là một ý tưởng rất tồi nên mã không chỉ chạy trên iOS
Bắt đầu Swift 3 và Swift 4 , số phiên bản là tùy chọn. Bây giờ bạn có thể chỉ cần gõ:
@available(*, deprecated)
func foo() {
// ...
}
Hoặc nếu bạn muốn một tin nhắn đi cùng với nó:
@available(*, deprecated, message: "no longer available ...")
func foo() {
// ...
}
@available(*, deprecated, message = "no longer available ...")
khi bao gồm một thông báo.
Bạn có thể sử dụng điều này để tự động sửa lỗi bạn nhập với func mới của bạn
@available(*, deprecated, renamed: "myNewFunc")
func myOldFunc() {
// ...
}
func myNewFunc() {
// ...
}
Thay vì * bạn có thể sử dụng swift, cho số Phiên bản nhanh.
Các hàm không dùng nữa tạo ra các cảnh báo nhưng vẫn có thể được gọi. (Cảnh báo)
Các chức năng lỗi thời ngăn chặn nó được gọi hoàn toàn. (Lỗi)
@available(swift, deprecated: 4.0, obsoleted: 4.2, message: "This will be removed in v4.2, please migrate to ...")
hoặc sử dụng các Tùy chọn khác như iOS, macOS, watchOS, tvOS ...
@available(iOS, deprecated:7.0, obsoleted: <ObsoletedVersion>, renamed: "myFuncNew", message: "Please use new method - myFuncNew()")
func myFuncOld() {
//
}
Nếu deployment target
là 9.0
và
1. <ObsoletedVersion>
== 10.0
-warning
2. <ObsoletedVersion>
== 8.0
-compile error
=
s được thay thế bằng:
s.