Подтвердить что ты не робот

Отметить протокол как устаревший

Как сделать метод протокола отображаемым как устаревший для тех, кто реализует протокол? Я попытался использовать @available, как показано ниже, но при реализации метода протокола в Xcode нет предупреждения.

protocol TestDelegate {
    @available(*, deprecated, message: "Don't use this anymore")
    func myMethod() -> Bool
}

extension ViewController: TestDelegate {
    func myMethod() -> Bool {
        return true
    }
}
4b9b3361

Ответ 1

Информация

Об атрибутах

подробности

  • Xcode 10.2.1 (10E1001), Swift 5

Код

@objc
protocol TestDelegate {
    @available(iOS, unavailable)
    func myMethod1() -> Bool

    @available(iOS, unavailable, message: "Don't use this anymore")
    func myMethod2() -> Bool

    @available(iOS, unavailable, renamed: "myMethod4()")
    func myMethod3() -> Bool

    @available(iOS, obsoleted: 10.0)
    func myMethod4() -> Bool

    @available(swift, introduced: 3.0, obsoleted: 4.2)
    func myMethod5() -> Bool

    @available(iOS, introduced: 8.0, obsoleted: 11.0)
    func myMethod6() -> Bool
}

extension ViewController: TestDelegate {

    func myMethod1() -> Bool { return true }
    func myMethod2() -> Bool { return true }
    func myMethod3() -> Bool { return true }
    func myMethod4() -> Bool { return true }
    func myMethod5() -> Bool { return true }
    func myMethod6() -> Bool { return true }
}

Проверьте

enter image description here