проверить, присутствует ли он на конкретном устройстве, на котором выполняется код.

у использовать Xcode 9 для добавления кода iOS 11 в свой проект, сохраняя при этом возможность компилировать проект с Xcode 8, который поддерживает только iOS 10.

В Objective-C я могу сделать это с помощью директивы препроцессора, чтобы проверить,__IPHONE_11_0 определено. Который будет скрывать код, если я компилирую с помощью Base SDK раньше, чем iOS 11. Вот так:

#ifdef __IPHONE_11_0
    if (@available(iOS 11.0, *)) {
        self.navigationController.navigationBar.prefersLargeTitles = YES;
    }
#endif

Есть ли способ сделать это в Swift?

if #available(iOS 11.0, *) не работает, потому что это проверка во время выполнения.

Ответы на вопрос(4)

Ваш ответ на вопрос