Распаковка переменной объявленой в условном цикле


#1

Всем добрый день. Экспериментирую с библиотекой для Taptic Engine. Так как не все версии OS поддерживают, приходиться объявление константы feedbackGenerator запихивать в условную конструкцию. Если я хочу вынести работу с этой константной за пределы конструкции, соответственно компилятор ругается на не явное определение константы. Подскажите пожалуйста, как правильно распаковать эту константу? Как проверить была ли она объявлена? Что бы при доступности функции, её можно было использовать ?

@IBAction func flashLight(_ sender: UIButton) {
    
    if #available(iOS 10.0, *) {
    let feedbackGenerator = UINotificationFeedbackGenerator()
        feedbackGenerator.prepare()
        feedbackGenerator.notificationOccurred(.success)
    } else {
        print("No taptic")
    }

// AudioServicesPlayAlertSound(SystemSoundID(kSystemSoundID_Vibrate))

    if sender.titleLabel?.text == "ON" {
        sender.setTitle("OFF", for: .normal)
        flashControl(value: 1)
    } else {
        sender.setTitle("ON", for: .normal)
        flashControl(value: 0)
    }
    
    
}