Отключить "доступно только на iOS 11.0 или новее" в swift?

Проблема в том, что я хочу проверить решение, которое требует переменной, объявленной в классе. Но если я сделаю это, я должен отметить весь класс как @available(iOS 11.0, *) что вызывает много изменений во многих других местах.

Так можно ли полностью отключить его в одном месте? Или отключить его временно (просто для тестирования новых функций без существенных изменений и без изменений минимальной версии iOS) в худшем случае?

1 ответ

Лучшее решение, которое я нашел, это использовать свойства:

class SomeClass {
    private var _authSession: NSObject!;
    @available(iOS 11.0, *)
    var authSession: SFAuthenticationSession! {
        get {
            return _authSession as! SFAuthenticationSession
        }
        set(val) {
            _authSession = val
        }
    }
}

Это просто пример, так ! может быть заменен на ? если это необходимо. Короче говоря - iOS запрещает объявлять переменные с @available но позволяет помечать свойства этим макросом.

Другие вопросы по тегам