Объявить метод недоступным, поскольку указанная c версия iOS в swift 5 - PullRequest
2 голосов
/ 10 апреля 2020

Я буду sh, чтобы достичь чего-то подобного:

@unavailable(iOS 11.0, *)
func oldWay() { 
    ...
}

@available(iOS 11.0, *)
func newWay() { 
    ...
}

Я пробовал что-то вроде @available(iOS 11.0, unavailable, *), но он не компилируется.

Моя проблема в том, что я ' m соответствует протоколу Objective- C с дополнительными методами. Некоторые из них доступны только с iOS 11, мое приложение доступно с iOS 10, и я не хочу, чтобы оба метода были реализованы для данной платформы.

Например, если я делаю это:

func oldWay() { 
    ...
}

@available(iOS 11.0, *)
func newWay() { 
    ...
}

Оба метода реализованы на всех платформах, начиная с iOS 11 ... Это не то, что я ищу.

Так что, если у кого-то есть идея ...

1 Ответ

1 голос
/ 10 апреля 2020

Вы можете использовать аргумент deprecated: (и, возможно, также message:), потому что, похоже, именно это и происходит здесь:

@available(iOS, deprecated: 11.0, message: "Please use 'newWay'")
func oldWay() {

}

@available(iOS 11.0, *)
func newWay() {

}

Это выдаст предупреждение, если вы попытаетесь использовать по-старому. Если вместо этого требуется ошибка, замените deprecated на obsoleted.

...